如何使 macOS 应用程序中的 NSButton 具有突出显示的边框?
How to make NSButton in macOS app has a highlighted border?
我想给 NSButton
一个突出显示的边框以引导用户单击它。我希望它类似于在 NSTextField
上使用 becomeFirstResponder()
的效果,如下所示。
我尝试在 NSButton
上使用 becomeFirstResponder()
,但没有 UI 变化。
我也尝试过使用 button.highlight(true)
,但它突出显示了整个按钮,点击时有点混乱。
我该怎么办?谢谢。
正如评论员所指出的那样,按照您的建议进行操作是不明智的,因为它会与完全键盘访问冲突,而您的某些用户本可以启用该功能。
已经有一个 macOS 约定以某种方式突出显示 "default" 按钮 – 以前在按钮周围添加了一个环,目前它以不同的颜色绘制按钮。当用户按下 return 键时将触发默认按钮(而在全键盘访问中,space 键是触发器)。
您可以使用 NSWindow
的 defaultButtonCell
属性 动态设置和更改默认按钮。请注意,这需要一个 NSButtonCell
,而不是 NSButton
,您可以使用 cell
属性 从后者获得前者。所以你设置默认值的代码看起来像:
myWindow.defaultButtonCell = oneOfMyButtons.cell;
这里遵循标准的 macOS GUI,向用户指示最常用的按钮,并允许他们使用 return 键从键盘触发它。
HTH
我想给 NSButton
一个突出显示的边框以引导用户单击它。我希望它类似于在 NSTextField
上使用 becomeFirstResponder()
的效果,如下所示。
我尝试在 NSButton
上使用 becomeFirstResponder()
,但没有 UI 变化。
我也尝试过使用 button.highlight(true)
,但它突出显示了整个按钮,点击时有点混乱。
我该怎么办?谢谢。
正如评论员所指出的那样,按照您的建议进行操作是不明智的,因为它会与完全键盘访问冲突,而您的某些用户本可以启用该功能。
已经有一个 macOS 约定以某种方式突出显示 "default" 按钮 – 以前在按钮周围添加了一个环,目前它以不同的颜色绘制按钮。当用户按下 return 键时将触发默认按钮(而在全键盘访问中,space 键是触发器)。
您可以使用 NSWindow
的 defaultButtonCell
属性 动态设置和更改默认按钮。请注意,这需要一个 NSButtonCell
,而不是 NSButton
,您可以使用 cell
属性 从后者获得前者。所以你设置默认值的代码看起来像:
myWindow.defaultButtonCell = oneOfMyButtons.cell;
这里遵循标准的 macOS GUI,向用户指示最常用的按钮,并允许他们使用 return 键从键盘触发它。
HTH