【发布时间】:2014-02-21 03:18:14
【问题描述】:
我正在尝试为 NSTextField 对象实现一个委托,以便我可以实时检测用户输入并就该特定字段中不允许输入提供一些反馈。
特别是,我想从 JavaScript 模拟 onChange() 方法,实时检测用户输入,如果它正在写入不支持的值,则向他显示警告。
即该应用程序有一个文本字段,它只接受从 0 到 255 的数值(如 RGB 值),我想知道用户何时写入的不是数值或超出范围的值,以便立即向他显示警告消息或更改文本字段背景颜色,只是一个视觉提示,让他知道输入是错误的。
就像你在上面的图片中看到的那样,每次用户在文本字段中输入禁止值时,我都想显示一个警告标志。
我已经阅读了很多Apple's documentation,但我不明白要实现哪个委托(NSTextFieldDelegate、NSTextDelegate 或 NSTextViewDelegate),而且我不知道如何在其中实现它我的AppDelegate.m 文件以及使用哪种方法以及如何获得用户编辑的通知。
现在,我已经在我的 init 方法中使用类似 [self.textField setDelegate:self]; 的方式设置了 Delegate,但我不明白如何使用它或实现哪种方法。
【问题讨论】:
-
我建议您使用
NSNumberFormatter来处理这类事情。界面生成器的侧边栏中甚至还有一个带有数字格式化程序的NSTextField。 -
感谢您的推荐,但我的格式化程序已经可以正常工作了,但为了用户友好性问题,我需要实施视觉警告。
标签: objective-c macos nstextfield