我是Xcode的新手和MacOS应用程序的编程。请帮助我。我无法理解创建限制字符集和在兼容字符(0-9,e,。)上检查NSTextField的写操作(或我不知道的事件)。我读了如何创建字符集(NSCharacterSet),但不能接下来需要什么。我想在我的NSTextField上禁止输入错误的字符。如何在Objective-C中处理NSTextField和其他事件的键盘事件?像例子。
答案 0 :(得分:3)
我会在textField上放一个NSFormatter
。这是可可的方式:D
textField.formatter = myFormatter;
..例如一个NSNumberFormatter或者如果需要一个自定义的
见
答案 1 :(得分: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方法过滤掉不需要的字符。