使用箭头键选择行时,NSTableView不发送“选定行”操作

时间:2015-05-23 19:44:25

标签: objective-c cocoa nstableview

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

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

我已经验证“禁用列选择”(这相当于旧的“全行选择”选项,对吗?)并尝试将NSTableView设置为连续...没有运气。

帮忙吗?感谢...

1 个答案:

答案 0 :(得分:3)

我无法找到能够准确解释NSTableView何时调用属于其目标操作的文档,但是根据您的说法似乎与表中的鼠标按下事件特别相关。通过将其视为选定行'行动你可能会超出合理范围。相反,也许你应该把它想象成一个“鼠标倒在桌子上”'动作,在这种情况下,它的行为完全符合它应该 - 只有当你按下鼠标时动作才会触发。这样的事件通常会导致选择更改,但并非总是如此 - 并且当您发现选择可以独立于鼠标按下事件而改变时。

使用各种NSTableView委托方法,而不是使用表格的操作来捕捉选择更改,而不是更常见。你有没有理由不使用这些?

enter image description here

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