2013-01-24 64 views
16

如何在UITextFieldbecomeFirstResponder時通知我?在UITextField成爲FirstResponder時收到通知

我可以becomeFirstResponder

我希望得到通知或處理事件當用戶使該文本字段第一響應檢查像isFirstResponder或設置爲成爲第一個響應者。

謝謝。

回答

30

您將需要來對文本字段的委託和實現這個可選的委託方法:

- (void)textFieldDidBeginEditing:(UITextField *)textField; 
11

除開展UITextFieldDelegate方法textFieldDidBeginEditing:,您可以爲UITextFieldTextDidBeginEditingNotification註冊通知。

的通知方法可以是:

- (void)someTextFieldDidBeginEditing:(NSNotification *)notification { 
    UITextField *textField = (UITextField *)notification.object; 
} 
0

對於OSX,你應該知道有副作用的NSControlTextDidBeginEditingNotification依靠時按鈕。

當您開始編輯時,按下一些按鈕並繼續編輯文本字段,當您恢復編輯時,您將不會得到第二個NSControlTextDidBeginEditingNotification

如果此行爲導致問題,UITextFieldTextDidChangeNotification可能是一種替代方案。

2

代表是絕對要走的路。不幸的是,在我的情況下,我無法使用它,因爲控制器是我的UITextField子類的委託,我需要修改它的佔位符文本。相反,我重寫了方法- (BOOL)canBecomeFirstResponder; & - (BOOL)resignFirstResponder;。一定要打電話過來。

+0

是的,你的評論要記得叫超級解決我的問題。 –

相關問題