2011-01-07 50 views
0

我有一個UITextView,其大小通過setFrame:CGRectMake(30,100,273,140)設置。IPhone:如何防止插入文本,如果文本超過UITextview的大小

我想阻止插入超過TextView大小的文本。

所以我已經試過:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { 
if ((textView.contentOffset.y + textView.frame.size.height) < textView.contentSize.height){ 
    return NO; 
} 
else { 
    return YES; 
} 
return YES; 
} 

的PB是,當條件滿足,我不能用退格鍵刪除多餘的文字。文本視圖不再可編輯。我在這裏做錯了什麼?

感謝您的幫助。

回答

0

好吧,我想我這次我自己發現了。

我不知道它是否是最好的解決方案,但至少可以正常工作。

- (void)textViewDidChange:(UITextView *)uiViewContent{ 
if ((uiViewContent.contentOffset.y + uiViewContent.frame.size.height) < self.entryTextField2.contentSize.height){ 
self.entryTextField2.text=[self.entryTextField2.text substringToIndex:[self.entryTextField2.text length] - 1]; 
} 
} 

希望它可以幫助別人......

邁克

0

你有沒有試過類似的東西?我寫得很快,並沒有經過測試。讓我知道它是否有效。我不知道把我的頭任何關於字體的頂部,所以你就必須做一些閱讀,並相應地調整代碼,它說:whateveryourfontis

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { 
    NSSTring *newString = [NSString stringWithFormat:@"%@%@", textView.text, text]; 
    CGSize *newSize = [newString sizeWithFont: [UIFont _whateveryourfontis_] constrainedToSize:textView.frame.size]; 
    return (newSize.height > textView.frame.size.height) ? NO : YES; 
} 
+0

好吧,我看了你的代碼,你的解決方案包括以使文本融入適應字體的大小UIView,但實際上,我不想更改字體的大小,UITextView中的文本將顯示在UIAlertview中,我無法控制它,因爲它將由UILocalNotification啓動。我需要做的是確保一旦用戶到達UITextView的末尾,他不能添加更多的字符,同時能夠使用退格去除任何額外的字符或重新表述UItextView的內容。 – 2011-01-08 03:49:25

相關問題