文章

关于 UITextField 和 键盘 的通知、代理调用顺序

从点击UITextField到键盘弹出完成,调用代理方法或发通知的顺序

1
2
3
4
5
6
7
1. textFieldShouldBeginEditing:                (调代理)
2. textFieldDidBeginEditing:                   (调代理)
3. UITextFieldTextDidBeginEditingNotification  (发通知)
4. UIKeyboardWillChangeFrameNotification       (发通知)
5. UIKeyboardWillShowNotification              (发通知)
6. UIKeyboardDidShowNotification               (发通知)

在UITextField中编辑(输入或者删除)文字时,调用代理方法或发通知的顺序

1
2
3
4
5
6
// 在此方法中取得的文本框文字是输入或删除之前的
1. textField:shouldChangeCharactersInRange:replacementString:  (调代理)

// 在此通知中取得的文本框文字是输入或删除之后的
2. UITextFieldTextDidChangeNotification                        (发通知)

在UITextField结束编辑时,调用代理方法或发通知的顺序

1
2
3
4
5
6
7
1. textFieldShouldEndEditing:              (调代理)
2. UIKeyboardWillChangeFrameNotification   (发通知)
3. UIKeyboardWillHideNotification          (发通知)
4. textFieldDidEndEditing:                 (调代理)
5. UITextFieldTextDidEndEditingNotification(发通知)
6. UIKeyboardDidHideNotification           (发通知)

本文由作者按照 CC BY 4.0 进行授权