检测哪个 NSTableView 处于活动状态
Detect which NSTableView is active
我有一个 NSSplitView 显示两个 NSTableView 实例。我需要检测哪个 table 视图已变为“活动”(聚焦),这意味着用户已单击该视图。我需要知道这一点,因为每个 table 视图充当显示所选行内容的另一个视图的源列表。 table 两人共享另一个视图。
我可以通过对 NSTableView 进行子类化并对 mouseDown:
或其他方法做出反应来做到这一点,但我宁愿避免为此进行子类化。我也不想跟踪任何 NSWindow 事件只是为了知道用户是否单击了 tables 之一(我宁愿继承 NSTableView)。
目前,我使用委托方法tableViewSelectionDidChange:
,但很明显,这个方法只在所选行发生变化时调用。我需要知道即使所选行没有更改,table 也会变为活动状态。
观察 table 视图的 clickedRow
属性 似乎不起作用。如果可能不符合 KVO。
有什么想法吗?
对于那些感兴趣的人,我发现最方便的解决方案是利用 NSTableView
是 NSControl
的子类这一事实。因此,就像 NSButton 一样,它可以在单击时(鼠标松开时)发送操作消息。
对于每个 tableView,我将其“操作”连接到界面生成器中我的控制器对象的相同 ibaction 选择器。
控制器识别发送者并相应地采取行动。
无需继承 NSTableView。
我有一个 NSSplitView 显示两个 NSTableView 实例。我需要检测哪个 table 视图已变为“活动”(聚焦),这意味着用户已单击该视图。我需要知道这一点,因为每个 table 视图充当显示所选行内容的另一个视图的源列表。 table 两人共享另一个视图。
我可以通过对 NSTableView 进行子类化并对 mouseDown:
或其他方法做出反应来做到这一点,但我宁愿避免为此进行子类化。我也不想跟踪任何 NSWindow 事件只是为了知道用户是否单击了 tables 之一(我宁愿继承 NSTableView)。
目前,我使用委托方法tableViewSelectionDidChange:
,但很明显,这个方法只在所选行发生变化时调用。我需要知道即使所选行没有更改,table 也会变为活动状态。
观察 table 视图的 clickedRow
属性 似乎不起作用。如果可能不符合 KVO。
有什么想法吗?
对于那些感兴趣的人,我发现最方便的解决方案是利用 NSTableView
是 NSControl
的子类这一事实。因此,就像 NSButton 一样,它可以在单击时(鼠标松开时)发送操作消息。
对于每个 tableView,我将其“操作”连接到界面生成器中我的控制器对象的相同 ibaction 选择器。
控制器识别发送者并相应地采取行动。
无需继承 NSTableView。