【问题标题】:NSDatePicker nextKeyViewNSDatePicker nextKeyView
【发布时间】:2019-03-08 17:55:47
【问题描述】:

似乎从未考虑过 NSDatePicker nextKeyView。

我可以在 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>

【问题讨论】:

  • 开箱即用imgur.com/a/6DNo5eH
  • 嗯,显然不是我的情况。我检查了 nextKeyView 是否正确设置。所以我想问题是什么会阻止他们工作?我添加了屏幕截图。
  • 如何在小型测试项目中重现问题?
  • 我会尽量制作最小的提取物并提供它。如果重要的话,视图位于由情节提要的 segue 触发的工作表中。
  • 我看到了 tableview - 你的 tableviewcell 中没有你的 nsdatepicker 吗?我在 10.12 中遇到了一些问题,但相同的设置在 10.14 上工作

标签: macos cocoa nsdatepicker


【解决方案1】:

这里有一个问题: 管理视图的控制器有一个 keyDown: 方法,因为它需要对“删除”键做出反应。如果按下的键不是“delete”(例如“tab”键),则此方法不会调用 [super keyDown:event]。

在控制器不处理密钥时添加对super的调用解决了问题。

为什么在某些情况下(例如,当焦点位于文本字段时)正确处理了按下的 Tab 键,而在其他情况下(例如日期选择器)却没有得到解释。

感谢所有发布 cmets 并帮助我解决这个问题的人。

【讨论】:

    猜你喜欢
    • 2016-07-21
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多