NSDatePicker nextKeyView
NSDatePicker nextKeyView
似乎从来没有考虑过 NSDatePicker nextKeyView。
我可以将 tab 键切换到 NSDatePicker,但是尽管 nextKeyView 设置正确,我还是无法退出。
在选取器内部时,如果我按 Tab 键,焦点会正确地从日到月到年文本字段移动,但停留在年文本字段中并且永远不会转到 nextKeyView 控件。
反之亦然,shift-tab 年复一年地正确运行,但卡在 NSDatePicker 中。
我猜这是 NSDatePicker 的一个错误。
我如何通过子类化(或任何其他类型的解决方案)来解决这个问题?
此外,下一个关键视图链的日志,只是为了证明它们已设置
Initial first responder <NSTextField: 0x100587c60>
next key view <NSDatePicker: 0x6000035008f0>
next key view <NSComboBox: 0x100636740>
next key view <NSTextField: 0x10063e5a0>
next key view <NSTextField: 0x100587c60>
关键是:
管理视图的控制器有一个 keyDown: 方法,因为它需要对 "delete" 键按下做出反应。如果按下的键不是 "delete"(例如 "tab" 键),则此方法不会调用 [super keyDown:event]。
在控制器不处理键时添加对 super 的调用解决了问题。
为什么在某些情况下(例如,当焦点位于文本字段上时)正确处理了按下的 Tab 键,而在其他情况下(例如日期选择器)则无法正确处理。
感谢所有发表评论并帮助我解决这个问题的人。
似乎从来没有考虑过 NSDatePicker nextKeyView。
我可以将 tab 键切换到 NSDatePicker,但是尽管 nextKeyView 设置正确,我还是无法退出。
在选取器内部时,如果我按 Tab 键,焦点会正确地从日到月到年文本字段移动,但停留在年文本字段中并且永远不会转到 nextKeyView 控件。
反之亦然,shift-tab 年复一年地正确运行,但卡在 NSDatePicker 中。
我猜这是 NSDatePicker 的一个错误。
我如何通过子类化(或任何其他类型的解决方案)来解决这个问题?
Initial first responder <NSTextField: 0x100587c60>
next key view <NSDatePicker: 0x6000035008f0>
next key view <NSComboBox: 0x100636740>
next key view <NSTextField: 0x10063e5a0>
next key view <NSTextField: 0x100587c60>
关键是: 管理视图的控制器有一个 keyDown: 方法,因为它需要对 "delete" 键按下做出反应。如果按下的键不是 "delete"(例如 "tab" 键),则此方法不会调用 [super keyDown:event]。
在控制器不处理键时添加对 super 的调用解决了问题。
为什么在某些情况下(例如,当焦点位于文本字段上时)正确处理了按下的 Tab 键,而在其他情况下(例如日期选择器)则无法正确处理。
感谢所有发表评论并帮助我解决这个问题的人。