const CGKeyCode NJKeyInputFieldEmpty = kVK_MAX;
+@interface NJKeyInputField () <NSTextFieldDelegate>
+@end
+
@implementation NJKeyInputField {
NSTextField *field;
NSImageView *warning;
- (void)clear {
self.keyCode = NJKeyInputFieldEmpty;
- [self.delegate keyInputFieldDidClear:self];
+ [self.delegate keyInputFieldDidClear:self];
[self resignIfFirstResponder];
}
return self.keyCode != NJKeyInputFieldEmpty;
}
-+ (NSString *)stringForKeyCode:(CGKeyCode)keyCode {
++ (NSString *)displayNameForKeyCode:(CGKeyCode)keyCode {
switch (keyCode) {
case kVK_F1: return @"F1";
case kVK_F2: return @"F2";
case kVK_ApplicationMenu:
return NSLocalizedString(@"Menu", "keyboard key");
-
case kVK_MAX: // NJKeyInputFieldEmpty
return @"";
default:
- (void)setKeyCode:(CGKeyCode)keyCode {
_keyCode = keyCode;
- field.stringValue = [NJKeyInputField stringForKeyCode:keyCode];
+ field.stringValue = [NJKeyInputField displayNameForKeyCode:keyCode];
}
- (void)keyDown:(NSEvent *)event {
warning.hidden = YES;
char *error = NULL;
const char *s = field.stringValue.UTF8String;
- long code = strtol(s, &error, 16);
+ short code = (short)strtol(s, &error, 16);
if (!*error && isValidKeyCode(code) && field.stringValue.length) {
self.keyCode = code;