当使用箭头键选择行时,NSTableView 不发送 "selected row" 操作

NSTableView not sending "selected row" action when row selected with arrow keys

这是一个非常简单的问题,我知道我以前遇到过,但对于我来说,我既不记得解决方案也找不到描述它的页面:

我有一个绑定到内容数组的 NSTableView。当我用光标单击行时,table 发送一个我可以处理的操作。当我使用 up/down 箭头键在 table 中导航时,它不会发送操作。

我已经确认 "Column Select" 被禁用(这相当于旧的 "Full Row Select" 选项,对吧?)并尝试将 NSTableView 设置为 Continuous ...没有运气。

请帮忙?谢谢...

我找不到准确解释 NSTableView 何时调用属于其 目标 动作 的文档,但从你所说的来看,它似乎与 table 中的鼠标按下事件特别相关。通过将其视为 'selected-row' 操作,您可能会过度概括。相反,也许您应该将其视为 'mouse-down-in-table' 操作,在这种情况下,它的行为完全符合预期 - 操作仅在您按下鼠标时触发。这样的事件通常会导致选择发生变化,但并非总是如此 - 当您发现选择可以独立于鼠标按下事件发生变化时。

不是使用 table 的操作来捕获选择更改,而是使用各种 NSTableView 委托方法更为常见。您有没有使用这些的原因?

这些提供了有关选择如何变化的更详细信息,并且它们将捕获由任何类型的事件(鼠标、键盘或程序)触发的变化