我在iOS 8上构建应用程序。我有一个登录屏幕,用户输入用户名和密码。当他们输入了一个有效的用户名和密码时,他们被允许移动到下一个屏幕(一个按钮被启用,允许他们前进)。UITextField secureEntry不尊重clearsOnBeginEditing属性
我有逻辑写,告诉时启用或禁用自身的按钮,这是基于关闭UITextFieldDelegate
方法:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
这个方法告诉我,当我的文本字段要改变自己文字 - 很简单。我已将密码文本字段的secureTextEntry
属性设置为YES,并将其clearsOnBeginEditing
属性设置为NO。
当我离开密码文本框然后回到它(通过单击它内部)并键入内容时,文本仍然被擦除。使事情变得更加复杂,shouldChangeCharactersInRange:replacementString:
方法不会给我任何指示文本字段被清除(基于范围或替换字符串)。因此,我无法检测何时将继续按钮设置为禁用。
有什么想法?谢谢!
感谢您的回答。然而,这对我不起作用。即使在实现了textFieldShouldClear之后,该方法在字段清除时也不会被调用。 – 2015-02-10 21:26:29
从apple文档(关于textFieldShouldClear):“文本字段响应用户按下内置清除按钮来调用此方法(该按钮默认不显示,但可通过更改clearButtonMode属性中的值来启用)“由于我没有使用清除按钮,所以为什么不调用这个委托方法是有意义的。 – 2015-02-10 21:31:58
我会说,阅读该链接中的答案会稍微清除一些情况。基本上,从用户体验的角度来看,安全的输入文本字段总是会在编辑时清除,因为用户几乎不可能知道该字段以前是什么东西,因为它无论如何都变成了黑色圆圈。既然如此,我想我们需要尝试一些不同的东西来阻止文本字段的清除。因此,为什么我认为我的解决方案是体面的。 – 2015-02-11 21:53:37