我可以添加一个小的十字按钮,该按钮可在单击中单击一次清除所有文本 UITextField 使用以下代码。

textField.clearButtonMode = UITextFieldViewModeWhileEditing;

我也实施了 UITextFieldDelegate.

我想激活/停用该的正确条按钮 UINavigationBar 根据我的变化 UITextField. 。规则很简单:如果文本字段至少具有一个字符,则只需启用按钮,否则将其禁用。

我实施了 UITextField的代表方法 textField:shouldChangeCharactersInRange: 不断检查要求并更新按钮的状态。

现在我的问题是,当我单击文本字段上的小交叉按钮时,该方法 textField:shouldChangeCharactersInRange: 不称呼。因此缺少所需的动作。如何确定“清除”按钮的热门事件?

一些图片显示我在说什么。

初始阶段:在这里,“完成”按钮被禁用,因为文本字段中没有字母

键入字母时,启用了“完成”按钮

现在,如果我单击“清除”按钮,则仍然启用“完成”按钮。这是错误的。

有帮助吗?

解决方案

使用 委托法 textViewShouldClear::

询问代表是否应删除文本字段的当前内容。

- (BOOL)textFieldShouldClear:(UITextField *)textField

参数

textField

包含文本的文本字段。

返回值

YES 如果要清除文本字段的内容;否则, NO.

讨论

文本字段称此方法响应用户按内置清除按钮。 (默认情况下未显示此按钮,但可以通过更改中的值来启用 clearButtonMode 文本字段的属性。)在编辑开始时也调用此方法 clearsOnBeginEditing 文本字段的属性设置为 YES.

代表实施此方法是可选的。如果不存在,则清除文本,好像此方法已返回 YES。可用性

* Available in iOS 2.0 and later.

在uitextfield.h中声明

其他提示

您可以使用 textFieldShouldClear: 当用户点击清除按钮时,委托方法可以处理。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top