【问题标题】:How to make NSButton in macOS app has a highlighted border?如何使 macOS 应用程序中的 NSButton 具有突出显示的边框?
【发布时间】:2017-12-02 23:30:05
【问题描述】:

我想给NSButton 一个突出显示的边框来引导用户点击它。我希望它类似于在NSTextField 上使用becomeFirstResponder() 的效果,如下所示。

我尝试在NSButton 上使用becomeFirstResponder(),但UI 没有变化。

我也尝试过使用button.highlight(true),但它会突出显示整个按钮,在单击时有点令人困惑。

我该怎么办?谢谢。

【问题讨论】:

  • 你的意思是在系统偏好设置中开启了全键盘访问?
  • @Willeke 抱歉,我不确定系统偏好设置中的全键盘访问是什么。这是捷径设置吗?
  • 这简直是个坏主意。
  • @ElTomato 你能详细说明为什么不好吗?
  • 系统首选项 -> 键盘 -> 快捷方式 -> 全键盘访问 -> 所有控件。 Accessibility Keyboard Shortcuts 尝试并重新考虑突出显示的边框。

标签: swift macos cocoa nsbutton


【解决方案1】:

正如评论员指出的那样,执行您的建议是不明智的,因为它会与您的某些用户可能启用的全键盘访问冲突。

已经有一个 macOS 约定以某种方式突出显示“默认”按钮 - 这以前在按钮周围添加了一个环,目前它以不同的颜色绘制按钮。当用户按下返回键时,默认按钮将被触发(而在全键盘访问中,空格键是触发器)。

您可以使用NSWindowdefaultButtonCell 属性动态设置和更改默认按钮。请注意,这需要NSButtonCell,而不是NSButton,您可以使用cell 属性从后者获取前者。因此,您设置默认值的代码如下所示:

myWindow.defaultButtonCell = oneOfMyButtons.cell;

这里遵循标准的 macOS GUI,向用户指示最常用的按钮,并允许他们使用返回键从键盘触发它。

HTH

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 2010-11-03
    • 1970-01-01
    相关资源
    最近更新 更多