【问题标题】:NSToolbarItem Highlights When It Shouldn'tNSToolbarItem 不应该突出显示
【发布时间】:2015-03-13 22:37:21
【问题描述】:

我在作为检查器面板的 NSPanel(实用程序面板)的工具栏中的 NSToolbarItems 有奇怪的行为。面板第一次显示时三个项目都OK

只要我点击任何项目,左侧​​项目就会被蓝色框突出显示。

蓝色突出显示与用于 NSToolbarItem 的图像无关,并且始终位于左侧图像周围。第一次点击后它永远不会消失。

是什么导致了突出显示以及如何使其消失?

谢谢--

【问题讨论】:

  • 感谢您对对焦环的深入了解。解决方案是添加 [(NSPanel *)self.window setBecomesKeyOnlyIfNeeded:YES];检查器面板的 -awakeFromNib。

标签: macos nstoolbaritem


【解决方案1】:

那是对焦环。它显示面板何时成为键(由于单击)并指示哪个控件将响应键盘事件,例如按下 Space 键。当您按 Tab 或 Shift-Tab 时,它可能会在窗口中的控件之间移动。

如果您的面板中有任何文本字段或类似的内容关注单击,那么单击其中一个可能会从工具栏项中移除焦点环并将其放在文本字段上。

您不应该将此视为一些大问题。但是,如果你真的想改变它,你可以让另一个视图成为第一响应者(焦点视图),以使工具栏项没有焦点。

您可以设置窗口和/或选项卡项目的initialFirstResponder。 (我假设工具栏项目正在表格标签视图的标签之间切换。)

或者,您可以通过[window makeFirstResponder:nil] 使窗口成为自己的第一响应者。或者,您可以通过 if ([view acceptsFirstResponder]) [view.window makeFirstResponder:view]; 将任何特定视图设为第一响应者。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    • 2014-10-28
    • 1970-01-01
    相关资源
    最近更新 更多