验证TextField中的文本

时间:2011-04-02 07:35:49

标签: cocoa binding refresh validation textfield

我的程序中有一个textfield,它使用绑定表示来自模型对象的fileName。我希望这个textField可以用来输入一个新的fileName,在用户按下Enter之后,它应该将消息发送到我的模型对象,fileName的值在我的textField中已经​​改变,然后在我的模型对象里面检查这样的文件名是否可以被使用被称为。如果它返回true,那么它应该将新值应用于我的模型对象,否则,我的textField中的值应该撤消到初始值。

有人知道如何实施吗?我可以验证我的值,但我不能让我的textField刷新到初始值。至于更改模型对象值和texField刷新应该使用符合KVC的单个方法我不知道如何实现这样的行为。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

这对我来说听起来不是一个好的用户体验;作为一个用户,我会不高兴地发现,如果我在文本字段做了一个简单的拼写错误,它完全抹掉我刚刚输入。显示一条消息表明错误以及用户如何修复它会更好 。尽管如此...

我认为你应该设置一个文本字段委托。让委托保留一个变量,保存输入的最后一个有效字符串。然后在textFieldShouldEndEditing:中,检查有效性,如果检查未通过,则将文本字段的值设置为该变量并返回NO。如果它确实通过,则更改变量以保存新的有效字符串并返回YES。