相关疑难解决方法(0)

如何限制NSTextField文本长度并始终保持大写?

需要一个NSTextField,其文本限制最多为4个字符,并且始终以大写形式显示,但无法找到实现该目标的好方法.我试图通过与验证方法的绑定来实现它,但只有在控件失去第一个响应者时才会调用验证,这并不好.

暂时我通过在文本字段上观察通知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]];
  }
}
Run Code Online (Sandbox Code Playgroud)

但这肯定不是最好的方法.还有更好的建议吗?

user-interface cocoa objective-c nstextfield

25
推荐指数
4
解决办法
2万
查看次数

标签 统计

cocoa ×1

nstextfield ×1

objective-c ×1

user-interface ×1