2014-05-21 76 views
1

在我的應用程序中,我需要限制用戶只在UITextView中輸入7行。當他嘗試輸入8行文本時,我們需要停止編輯並顯示警告消息。它通過使用獲取UITextView文本的CGSize工作正常。如何從iOS中的UITextView中獲取n行文字

但是,當用戶在UITextView中輸入文本時粘貼不允許,如果文本超過7行。根據要求我需要從文件夾中複製7行文本(複製&粘貼)到UITextView中。

- (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

你能告訴你你試過了什麼嗎? SO上有幾個問題要知道什麼尺寸會呈現「NSString」。 – Larme

回答

0

您可以使用UITextViewTextDidChangeNotification通知,提醒你喜歡的文字等的變化被粘貼。

(在bottom of this page參考)或者,也有對UITextView這個方便的類,允許其與UITextField工作UIControl事件that can be found here