2009-09-21 84 views
3

我有一個表格,並在其中一個單元格中保留了UITextView。當用戶點擊它時,鍵盤出現。我正在嘗試各種方法來擺脫它。我的第一種方法是檢測UITextView的表格單元格上的一個水龍頭,但由於文本視圖佔據了大部分,所以不適合。然後我嘗試在工具欄上添加一個按鈕,並且每當用戶按下按鈕時,keybord都會隨着resignFirstResponder消失,但它不起作用。這似乎只有當我在UITextView resignFirstResponder作品的相同視圖。那麼我怎樣才能擺脫另一種視角的鍵盤呢?無法擺脫UITextView中的鍵盤

謝謝。

回答

1

下面的方法使用返回鍵來關閉UITextView鍵盤。

在你的控制器中,UITextView中的委託設置爲自 這樣的:如果你不使用回車鍵爲

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range 
replacementText:(NSString *)text 
{ 
// Any new character added is passed in as the "text" parameter 
if ([text isEqualToString:@"\n"]) { 
    // Be sure to test for equality using the "isEqualToString" message 
    [textView resignFirstResponder]; 

    // Return FALSE so that the final '\n' character doesn't get added 
    return FALSE; 
} 
// For any other character return TRUE so that the text gets added to the view 
return TRUE; 
} 

這應該工作:

myTextView.delegate=self; 

然後添加此方法一個真正的回車鍵(例如添加新行)。

+0

是不是UITextView支持多行的整個想法?否則,爲什麼不使用UITextField? – PaulG 2012-12-13 15:45:24

1

你是什麼意思「它不會工作」。如果txtView是你的UITe4xtView,你的意思是將按鈕與具有[txtView resignFirstResponder]的動作關聯不會工作?我以前使用過這個代碼,它對我很有用

+0

這將停止鍵盤從顯示出來我覺得他有點像[自resignFirstResponder]的按鈕。澄清會很好。 – Amagrammer 2009-09-21 22:25:00

0

不知道控件的大小,也沒有意圖,要提出可靠的建議有點困難。但是,如果您正在尋找只讀文本視圖,爲什麼不考慮UILabel?如果它將包含大量只讀文本並且您需要豐富的格式,請考慮使用格式設置的UIWebView。

當然,這個答案可能完全不合適。你可以澄清你的意圖,也許顯示正在進行的應用程序的屏幕截圖(當然未開發)?

-1

我爲那樣的問題,如下因素法

- (BOOL)textFieldShouldReturn: tf_some_text_field { 

[tf_some_text_field resignFirstResponder]; 
[tf_another_text_field_in_the_same_view resignFirstResponder]; 

return YES; 
} 

希望它可以幫助使用...

+0

我認爲你的實現只適用於UITextField,而不適用於UITextView。 – 2009-12-07 14:50:14

+0

它也適用於textField – 2011-04-26 10:16:00

0

請嘗試取消在文本中的「編輯」選項,查看屬性窗口在Interface Builder 。

如果用戶點擊您的TextView