如何在响应链中保留隐藏视图?

时间:2015-10-09 10:56:26

标签: macos cocoa nsview responder-chain

我有一个NSSplitViewController,其中一个项目中我有多个带键盘快捷键的按钮。

用户隐藏项目后,快捷方式不会触发。 有没有办法将隐藏视图中的按钮作为响应者链的一部分?

1 个答案:

答案 0 :(得分:1)

根据Apple's docs,听起来简单的答案是否定的。然而,一个简单的解决方法可能是将按钮移出可见区域,比如将边界向右移动10,000左右。如果它们在滚动视图/剪辑视图中会扩展以显示其新位置中的项目,那么这将不会很好地工作,但如果它们不是,它应该工作正常。如果它们处于滚动视图中,那么您可能会找到一种方法使它们完全透明,以达到类似的效果。

也就是说,或许值得考虑一下你是否拥有正确的设计,因为从用户界面的角度来看,具有不可见的按钮对关键事件的响应是一个值得怀疑的设计(正如Apple试图阻止它)。也许这些键盘事件应该由视图层次结构中更高的视图或窗口或某个此类实体处理?