2014-05-21 2 views
1

내 응용 프로그램에서는 사용자가 UITextView에서만 7 줄을 입력하도록 제한해야합니다. 그가 8 줄에 텍스트를 입력하려고하면 편집을 중지하고 경고 메시지를 표시해야합니다. UITextView 텍스트를 가져 오는 CGSize를 사용하여 잘 작동합니다.iOS의 UITextView에서 n 줄의 텍스트를 얻는 방법

하지만 사용자가 UITextView에 텍스트를 붙여 넣기 할 때 텍스트가 7 줄 이상인 경우 허용하지 않습니다. 요구 사항에 따라 UITextView에 entred (복사 된 & 붙여 넣기)의 텍스트 7 줄을 가져와야합니다.

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)string 
    { 
     NSString *temp = [textView.text stringByReplacingCharactersInRange:range withString:string] 
     CGSize size = [temp sizeWithFont:textView.font constrainedToSize:CGSizeMake(textView.frame.size.width,999) lineBreakMode:UILineBreakModeWordWrap]; 
     int numLines = size.height/textView.font.lineHeight; 
     if (numLines <= 8) 
     { 
      return true; 
     } 

//Alert 
    return false; 
} 

이 문제에서 저를 도와주세요. 미리 감사드립니다.

+0

대리인 메서드를 확인하십시오. 사용자가 텍스트를 수정할 때 줄 수를 확인하고 원하지 않는 것을 잘라냅니다. – Larme

+0

답장을 보내 주셔서 감사합니다. @Larme. 내 코드를 shouldCharacterChange 메서드에 썼다. 하지만 NSString에서 텍스트 7 줄을 가져올 수 없습니다. –

+0

시도한 내용을 보여줄 수 있습니까? 어떤 크기로 "NSString"을 렌더링할지 알 수있는 몇 가지 질문이 있습니다. – Larme

답변

0

당신은 그것이 UITextField 작업을 수행 할 수 있습니다 UITextView에서이 편리 카테고리도있다,

합니다 (bottom of this page에서 참조).에 붙여 넣은 텍스트와 같은 다른 변경에 당신을 경고하기 위해 UITextViewTextDidChangeNotification 알림을 사용 또는 수 UIControl 이벤트 that can be found here.