NSButton默认按钮,带蓝色外观

时间:2009-03-30 18:45:47

标签: cocoa user-interface

我有一个带有一个或多个按钮的对话框,并希望能够以编程方式将最右边的按钮设置为默认按钮,这样当用户按下Enter或Return键时,它应该像用户点击它一样响应。 / p>

我正在使用[btn setKeyEquivalent:@"\r"],这使得它工作正常,但我希望按钮具有未发生的蓝色外观。我需要做什么?

5 个答案:

答案 0 :(得分:36)

我错过了正确设置按钮边框样式,这就是它看起来不正常的原因。我现在正在设置按钮:

[btn setBezelStyle:NSRoundedBezelStyle];

然后,其中任何一个都可以设置默认按钮:

[myWindow setDefaultButtonCell:[btn cell]]; 

[btn setKeyEquivalent:@"\r"] 

答案 1 :(得分:6)

文档说:

  

请注意,如果将等效键设置为Return,则该按钮将成为默认按钮。

因此,你正确地做到了。您可以在设置等效键后尝试此操作:

[button setNeedsDisplay:YES];

这会强制按钮重绘自己。

答案 2 :(得分:3)

我的设置是自定义工作表,我希望默认按钮在NSAlert中显示。以下配置为我提供了蓝色默认外观。适用于10.12.3 Sierra。

   button.bezelstyle = NSBezelStyleRounded; // Push in Interface Builder
   button.keyEquivalent = @"\r";
   button.highlighted = YES; // this is the most important part.

答案 3 :(得分:1)

[myWindow setDefaultButtonCell:[btn cell]]; // should do the trick.

有关详细信息,请参阅Apple's documentation

答案 4 :(得分:0)

对于Swift 4.2,只需使用

button.isHighlighted = true