如何使 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 键是触发器)。

您可以使用 NSWindowdefaultButtonCell 属性 动态设置和更改默认按钮。请注意,这需要一个 NSButtonCell,而不是 NSButton,您可以使用 cell 属性 从后者获得前者。所以你设置默认值的代码看起来像:

myWindow.defaultButtonCell = oneOfMyButtons.cell;

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

HTH