UItextfield各个通知和回调的顺序

  1. 成为第一响应者之前,调用delegate的textFieldShouldBeginEditing(_:)方法
  2. 成为第一响应者
  3. 发送通知UIKeyboardWillShowUIKeyboardDidShow
  4. 调用textFieldDidBeginEditing(_:)。 发送UITextFieldTextDidBeginEditing通知
  5. 处于编辑态
    • 输入文字改变(包括marked text),调用textField(_:shouldChangeCharactersIn:replacementString:)方法,发送UITextFieldTextDidChange通知
    • 用户点击回车键,调用textFieldShouldReturn(_:)方法
    • 用户点击内置的删除按钮(right overlay view),调用textFieldShouldClear(_:)方法
  6. 在放弃第一响应者之前,调用方法textFieldShouldEndEditing(_:)
  7. 放弃成为第一响应者,然后发送通知UIKeyboardWillHideUIKeyboardWillHide
  8. 调用textFieldDidEndEditing(_:),发送通知UITextFieldTextDidEndEditing

通知和回调

通知和回调起到相同的功能,如果实现了delegate的一些功能,通知可以不管