我怎样才能禁止将焦点切换到NSView控件

时间:2010-10-17 19:59:37

标签: cocoa macos focus nsview

我的主窗口中有一个侧边栏NSOutlineView。我希望用户能够切换 使用Tab键将焦点放在主窗口中的所有视图中,但是他不应该使用Tab键为NSOutlineView提供焦点。

我知道

- (BOOL)canBecomeKeyView { return NO; }
- (BOOL)acceptsFirstResponder { return NO; }

我可以禁用视图的焦点,但我完全禁用了视图。我希望用户能够使用源列表中的键(通过单击列表)。只需将源列表排除在Tab键顺序之外。

还有一个热键可以通过编程方式为源列表提供焦点,如果我使用上面的函数设置它也不起作用。

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

找出哪个视图将此视图作为其nextKeyView,并将其nextKeyView设置为其他视图。然后对previousKeyView执行相同的操作,以便用户无法* shift- * tab进入它。