2011-08-11 33 views

回答

47

你絕對可以使用的方法UITextViewDelegate

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView 

只返回YES並攔截該方法內。您還可以UITextFieldDelegate也爲了UITextFields

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 

希望有所幫助。

+1

這應該是公認的答案 –

+0

非常贊同。 –

4

以前的答案做的工作非常適合UITextBox,但如果你有一個從NSResponder類派生的自定義類,並需要知道當它成爲第一個響應者:

-(BOOL) becomeFirstResponder 
{ 
    // Your stuff here 
    return YES; 
} 
1

如上所述,可以覆蓋becomeFirstResponder但要注意,你必須調用超類的實現。如果你不這樣做,就像彈出文本字段上的鍵盤不能工作。即

override func becomeFirstResponder() -> Bool { 
    if super.becomeFirstResponder() { 
    // set up the control state 
    return true 
    } 

    return false 
} 
0

textViewShouldBeginEditing在文本視圖成爲第一響應者之前實際觸發。

textViewDidBeginEditing會在文本視圖成爲第一響應者時觸發,並且將是執行需要知道活動文本視圖的代碼的最佳位置。

如果您不是真的擔心哪個字段處於活動狀態,並且只需要在字段點擊時清除文本,則可以使用任一功能。

編輯:相同的方法可用於文本字段。

相關問題