NSDatePicker nextKeyView

时间:2019-03-07 10:26:16

标签: macos cocoa nsdatepicker

似乎从未考虑过NSDatePicker nextKeyView。

我可以将Tab键锁定到NSDatePicker,但是即使正确设置了nextKeyView,也永远无法退出。

在选择器内部,如果按Tab键,则焦点会正确地从日到月到年文本字段,但是会停留在年文本字段中,并且永远不会转到nextKeyView控件。

在相反的方向上,shift-tab年复一年地正确运行,但是粘贴在NSDatePicker内。

我猜这是NSDatePicker的错误。

如何子类化(或任何其他类型的解决方案)来克服此问题?

enter image description here 另外,记录下一个关键视图链,只是为了证明它们已设置

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>

1 个答案:

答案 0 :(得分:0)

这是要抓住的地方: 管理视图的控制器具有keyDown:方法,因为它需要对按下的“删除”键作出反应。如果所按下的键不是“删除”键(例如“ tab”键),则此方法不会调用[super keyDown:event]。

在控制器不处理键时将调用添加到super可以解决问题。

为什么在某些情况下(例如,当焦点位于文本字段上时)正确地按下了Tab键,而在其他情况下(例如,日期选择器)仍然无法解释。

感谢所有发表评论的人,并帮助我解决了这个问题。