cocoa - 验证 TextField 中的文本

标签 cocoa binding refresh validation textfield

我的程序中有一个文本字段,它使用绑定(bind)表示来自模型对象的文件名。我希望这个文本字段可用于输入新的文件名,并且在用户按 Enter 键后,它应该将消息发送到我的模型对象,表明文件名的值在我的文本字段中已更改,然后在我的模型对象中检查此类文件名是否可以的方法被使用称为。如果它返回 true,那么它应该将新值应用于我的模型对象,如果不是,那么我的 textField 中的值应该撤消到初始值。

有人知道如何实现吗?我可以验证我的值,但无法使我的文本字段刷新到初始值。至于更改模型对象值和 texField 刷新应该使用符合 KVC 的单一方法,我不知道如何实现这种行为。

任何帮助将不胜感激。

最佳答案

对我来说,这听起来不是一个好的用户体验;作为用户,我会很沮丧地发现,如果我在文本字段中犯了一个简单的拼写错误,它就会完全删除我刚刚输入的内容。如果能显示一条消息来指出问题所在以及用户如何修复它,那就更好了。尽管如此...

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

关于cocoa - 验证 TextField 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5521885/

相关文章:

objective-c - "data-only"Objective-C 对象的更好替代方案?

objective-c - 如何将 NSTimeInterval 对象传递给 detachNewThreadSelector withObject 参数?

c++ - Q_PROPERTY NOTIFY 信号及其参数

c# - xaml 中的条件元素取决于绑定(bind)内容

html - 我想要自动硬刷新,而不是在我的网页上进行简单的自动刷新

jsf - 上传的图片仅在刷新页面后可用

Cocoa Dock 触发 NSApplicationDidChangeScreenParametersNotification

cocoa - Apple 不再接受使用 QuickTime API 的应用程序提交

binding - 在 D 中使用 Windows 库的正确方法?

html - http-equiv ="refresh"是否保留引荐来源信息和元数据?