这看起来很简单,但必不可少。
将 NSDatePicker(样式:图形)放入窗口,构建并运行,然后尝试使用箭头键四处移动。唯一的反应是计算机发出“叮”的一声。
我已经覆盖-keydown
了一个简单的自定义 NSDatePicker 子类并打印了 theEvent 以注意到它们具有从 123 到 126 的对应键码。
然后,我偶然发现在每次按下箭头按钮后重置日期选择器的日期,内部-keydown
,如下所示:
- (void)keyDown:(NSEvent *)theEvent
switch ([[theEvent valueForKey:@"keyCode"] integerValue]) {
case 126:
// Take away one week from the date
self.dateValue = [NSDate dateWithTimeInterval:-604800 sinceDate:self.dateValue];
break;
.... similar for 125 - 123 ...
}
}
实现此方法的副作用是取消了用于单步执行对象的“制表符”键。
这似乎是一个很大的解决方法。日期选择器中是否已经包含另一种方法?