2017-12-02 176 views
0

我想给NSButton一个突出显示的边框来引导用户点击它。我期望它与在NSTextField上使用becomeFirstResponder()的效果类似。如何在macOS应用程序中使NSButton具有突出显示的边框?

enter image description here

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

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

我该怎么办?谢谢。

+0

您的意思是像是在System Prefs中打开Full Keyboard Access吗? – Willeke

+0

@Willeke对不起,我不确定Full Keyboard Access在系统首选项中是什么。这是捷径吗? –

+0

这简直是个坏主意。 –

回答

1

正如评论家指出,你提出的建议是不明智的,因为它会与全键盘访问相冲突,而你的一些用户可能已经启用了。

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

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

myWindow.defaultButtonCell = oneOfMyButtons.cell; 

遵循这一标准的MacOS的GUI这里既指用户最常用的按钮按下,并允许他们使用返回键键盘触发它。

HTH

相关问题