Необходимо иметь 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]];
}
}
Но это, безусловно, не лучший способ сделать это. Любое лучшее предложение?