我的程序中有一个文本字段,它使用绑定(bind)表示来自模型对象的文件名。我希望这个文本字段可用于输入新的文件名,并且在用户按 Enter 键后,它应该将消息发送到我的模型对象,表明文件名的值在我的文本字段中已更改,然后在我的模型对象中检查此类文件名是否可以的方法被使用称为。如果它返回 true,那么它应该将新值应用于我的模型对象,如果不是,那么我的 textField 中的值应该撤消到初始值。
有人知道如何实现吗?我可以验证我的值,但无法使我的文本字段刷新到初始值。至于更改模型对象值和 texField 刷新应该使用符合 KVC 的单一方法,我不知道如何实现这种行为。
任何帮助将不胜感激。
最佳答案
对我来说,这听起来不是一个好的用户体验;作为用户,我会很沮丧地发现,如果我在文本字段中犯了一个简单的拼写错误,它就会完全删除我刚刚输入的内容。如果能显示一条消息来指出问题所在以及用户如何修复它,那就更好了。尽管如此...
我认为你应该设置一个文本字段委托(delegate)。让委托(delegate)保留一个变量来保存输入的最后一个有效字符串。然后在 textFieldShouldEndEditing:
中检查有效性,如果检查未通过,则将文本字段的值设置为该变量并返回 NO。如果通过,则更改变量以保存新的有效字符串并返回 YES。
关于cocoa - 验证 TextField 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5521885/