按下UITextField的小十字button时的动作
我可以添加一个小的十字button,用于清除UITextField
中的所有文本,使用下面的代码。
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
我也实现了UITextFieldDelegate
。
我想根据UITextField
的更改激活/取消激活UINavigationBar
的右侧button。 规则很简单:如果文本字段至less有一个字符,只需启用该button,否则禁用它。
我实现了UITextField
的委托方法textField:shouldChangeCharactersInRange:
不断检查需求并更新button的状态。
现在我的问题是,当我点击文本字段上的小十字button,方法textField:shouldChangeCharactersInRange:
不会被调用。 所以缺less必要的操作。 我如何识别清除button的点击事件?
一些图片来显示我在说什么。
初始阶段:在这里,“完成”button被禁用,因为在文本字段中没有字母
当input一个字母,“完成”button被启用
现在,如果我点击清除button,“完成”button仍然可用。 这是错误的。
使用委托方法textViewShouldClear:
::
询问委托人是否应删除文本字段的当前内容。
- (BOOL)textFieldShouldClear:(UITextField *)textField
参数
textField
包含文本的文本字段。
返回值
YES
如果文本字段的内容应该被清除; 否则,NO
。讨论
文本字段响应用户按下内置清除button来调用此方法。 (此button默认不显示,但可以通过更改文本字段的
clearButtonMode
属性中的值来启用。)此方法在编辑开始时被调用,并且文本字段的clearsOnBeginEditing
属性设置为YES
。由委托实现此方法是可选的。 如果不存在,文本被清除,就像这个方法返回
YES
。 可用性* Available in iOS 2.0 and later.
在UITextField.h中声明
您可以使用textFieldShouldClear:
委托方法来处理用户点击清除button。