我有一个带有一个或多个按钮的对话框,并希望能够以编程方式将最右边的按钮设置为默认按钮,这样当用户按下Enter或Return键时,它应该像用户点击它一样响应。 / p>
我正在使用[btn setKeyEquivalent:@"\r"]
,这使得它工作正常,但我希望按钮具有未发生的蓝色外观。我需要做什么?
答案 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