我是 Xcode 和 MacOS 应用程序编程的新手。请让我帮忙。我不明白如何编写操作(或我不知道的事件)来创建限制字符集并检查兼容字符(0-9,e,.)上的 NSTextField。我读了如何创建字符集(NSCharacterSet),但不知道下一步需要什么。我想禁止在我的 NSTextField 上输入错误的字符。如何处理 NSTextField 的键盘事件和 Objective-C 中的其他事件?比如例子。
user2183768
问问题
2096 次
2 回答
3
我会NSFormatter
在 textField 上放一个。这就是可可的方式:D
textField.formatter = myFormatter;
.. 例如一个 NSNumberFormatter 或者如果需要是一个自定义的
看
于 2013-03-18T20:09:06.020 回答
1
我在 Cocoadev 上找到了一篇可以帮助你的帖子。(http://lists.apple.com/archives/cocoa-dev/2006/Aug/msg01492.html)
您需要注册一个通知,以便在文本更改时收到通知,例如:
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(textDidChange:)
name: NSControlTextDidChangeNotification
object: textField];
然后在您的 textDidChange: 方法(或任何您命名的方法)中,您可以修改输入。例如,要确保大写:
[[textField setStringValue: [[textField stringValue] uppercaseString]];
如果你想限制位数,你可以使用 NSMutableString 的 deleteCharactersInRange: 方法。如果您想限制在文本字段中找到的文本类型,可以使用 NSMutableCharacterSet 与所有允许的字符,然后使用 NSScanner 的 scanCharactersFromSet:intoString 方法过滤掉不需要的字符。
于 2013-03-18T19:55:39.983 回答