簡體   English   中英

當UITextField成為FirstResponder時得到通知

[英]get notified when UITextField becomeFirstResponder

UITextField becomeFirstResponder時如何獲得通知?

我可以像isFirstResponder一樣檢查,也可以設置為通過成為becomeFirstResponder成為第一響應者

當用戶將此文本字段設為第一響應者時,我想得到通知或處理事件。

謝謝。

您將需要成為文本字段的委托並實現此可選委托方法:

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

除了實現UITextFieldDelegate方法textFieldDidBeginEditing: ,您還可以注冊UITextFieldTextDidBeginEditingNotification通知。

通知方法可以是:

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

代表無疑是必經之路。 不幸的是,在我的情況下,我不能使用它,因為控制器是我的UITextField子類的委托,並且我需要修改它的占位符文本。 相反,我重寫了方法- (BOOL)canBecomeFirstResponder; - (BOOL)resignFirstResponder; 一定要叫超級。

對於OSX,在依賴NSControlTextDidBeginEditingNotification時,應該注意按鈕具有副作用。

當您開始編輯時,按一些按鈕,然后繼續編輯文本字段,當您繼續編輯時,不會再收到NSControlTextDidBeginEditingNotification

如果此行為引起問題,則可以選擇UITextFieldTextDidChangeNotification

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM