【问题标题】:NSTableView not sending "selected row" action when row selected with arrow keys使用箭头键选择行时,NSTableView 未发送“选定行”操作
【发布时间】:2015-05-24 06:50:54
【问题描述】:

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

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

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

请帮忙?谢谢...

【问题讨论】:

  • “选定行”操作是什么意思?您是在讨论表格视图的委托方法之一,还是在讨论您自己的方法之一?
  • 这是我自己的 IBAction 方法。我刚刚将它附加到 NSTableView,每当使用游标选择新行时都会调用它 - 但当我使用箭头键在表中导航时不会调用它。

标签: objective-c cocoa nstableview


【解决方案1】:

我找不到确切解释NSTableView 何时调用属于其目标action 的文档,但从你所说的来看,它似乎是具体的链接到表中的鼠标按下事件。通过将其视为“选定行”操作,您可能会概括超出合理范围。相反,也许您应该将其视为“鼠标按下桌面”动作,在这种情况下,它的行为完全符合预期 - 只有当您按下鼠标时才会触发该动作。这样的事件通常会导致选择更改,但并非总是如此 - 而且您发现选择可以独立于鼠标按下事件发生变化。

使用各种NSTableView 委托方法而不是使用表的操作来捕获选择更改。你不使用这些是有原因的吗?

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

【讨论】:

    最近更新 更多