启用NSTableView拒绝辞职第一响应者并吃掉发送给第一响应者的所有事件

时间:2015-07-07 22:58:20

标签: macos osx-yosemite nstableview first-responder

我有一个NSTableView,它会吃掉发送给第一个响应者的所有事件。在添加表视图之前,一切都很完美,发送给第一个响应者的所有消息都已正确发送到我的NSDocument子类。

正如我添加了表视图一样,它坚持始终具有焦点。除非外部工作表视图控制器(或类似的东西)获得焦点,否则它周围的焦点指示器永远不会消失。当表视图具有焦点时,发送给第一个响应者的消息不能与键盘快捷键一起使用。当我通过指针从菜单栏中单击它们时,它们可以正常工作。

如果我设置“拒绝第一响应者”,它不会改变任何东西。如果我将“enabled”设置为false,那么我的应用程序将恢复正常行为(尽管我显然无法与表视图交互)。

如何防止表格视图的“始终关注”行为。我已经尝试了In a view-based NSTableView, how make a control the first responder with a single click?的答案,但没有改变任何内容。

1 个答案:

答案 0 :(得分:1)

由于我已经将NSTableView隐藏了,我已经覆盖了becomeFirstResponder并且在没有做任何事情的情况下返回了NO,并且效果很好!我可以自由地与桌面视图互动,它只是没有获得焦点。