按下 UITextField 的小十字按钮时的操作
我可以使用以下代码添加一个小十字按钮,用于在 UITextField
中单击一次即可清除所有文本。
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
我还实现了 UITextFieldDelegate。
我想根据 UITextField
中的更改激活/停用 UINavigationBar
的右栏按钮。规则很简单:如果文本字段至少有一个字符,则只需启用该按钮,否则禁用它。
我实现了 UITextField
的委托方法 textField:shouldChangeCharactersInRange:
来不断检查需求并更新按钮的状态。
现在我的问题是,当我单击文本字段上的小十字按钮时,不会调用方法 textField:shouldChangeCharactersInRange:
。因此缺少所需的操作。如何识别清除按钮的点击事件?
一些图片来展示我正在谈论的内容。
初始阶段:此处,“完成”按钮被禁用,因为文本字段中没有字母
输入字母时,“完成”按钮启用
现在,如果我单击清除按钮,“完成”按钮仍处于启用状态。这是错误的。
I can add a small cross button that is used to clear all the text in a single click in a UITextField
with the following code.
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
I also implemented UITextFieldDelegate
.
I want to activate/deactivate the right bar button of the UINavigationBar
according to the changes in my UITextField
. The rule is simple: if the text field has at least one character, just enable the button, else disable it.
I implemented the UITextField
's delegate method textField:shouldChangeCharactersInRange:
to constantly check the requirement and update the status of the button.
Now my problem is, when I click the small cross button on the text field, the method textField:shouldChangeCharactersInRange:
is not called. So the required action is missing. How can I identify the hit event of the clear button?
Some pictures to show what I'm talking about.
Initial stage: here, the "Done" button is disabled because there are no letters in the text field
When typing a letter, the "Done" button is enabled
Now, if I click on the clear button, the "Done" button is still enabled. This is wrong.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 委托方法
textViewShouldClear:
:
声明于
UITextField.h
Use the delegate method
textViewShouldClear:
:Declared In
UITextField.h
您可以使用
textFieldShouldClear:
委托方法来处理用户点击清除按钮的情况。You can use
textFieldShouldClear:
delegate method to handle when user taps on clear button.斯威夫特
Swift