【发布时间】:2009-05-05 21:39:51
【问题描述】:
需要有一个文本限制为最多 4 个字符的 NSTextField 并始终以大写形式显示,但无法找到实现此目的的好方法。我尝试通过与验证方法的绑定来做到这一点,但只有在控件失去第一响应者时才会调用验证,这并不好。
我暂时通过观察文本字段上的通知 NSControlTextDidChangeNotification 并让它调用方法来使其工作:
- (void)textDidChange:(NSNotification*)notification {
NSTextField* textField = [notification object];
NSString* value = [textField stringValue];
if ([value length] > 4) {
[textField setStringValue:[[value uppercaseString] substringWithRange:NSMakeRange(0, 4)]];
} else {
[textField setStringValue:[value uppercaseString]];
}
}
但这肯定不是最好的方法。有更好的建议吗?
【问题讨论】:
标签: objective-c cocoa user-interface nstextfield