Car*_*osa 23 user-interface cocoa
我有一个带有一个或多个按钮的对话框,并且希望能够以编程方式将最右边的按钮设置为默认按钮,这样当用户按下Enter或Return键时,它应该响应,就像用户单击它一样.
我正在使用[btn setKeyEquivalent:@"\r"]
,这使它工作正常但我希望按钮具有蓝色外观,这是没有发生的.我需要做什么?
Car*_*osa 38
我错过了正确设置按钮边框样式,这就是它看起来不正常的原因.我现在正在设置按钮:
[btn setBezelStyle:NSRoundedBezelStyle];
Run Code Online (Sandbox Code Playgroud)
然后,其中任何一个都可以设置默认按钮:
[myWindow setDefaultButtonCell:[btn cell]];
Run Code Online (Sandbox Code Playgroud)
要么
[btn setKeyEquivalent:@"\r"]
Run Code Online (Sandbox Code Playgroud)
我的设置是一个自定义工作表,我希望默认按钮在 NSAlert 中显示。以下配置为我提供了蓝色的默认外观。适用于 10.12.3 Sierra。
button.bezelstyle = NSBezelStyleRounded; // Push in Interface Builder
button.keyEquivalent = @"\r";
button.highlighted = YES; // this is the most important part.
Run Code Online (Sandbox Code Playgroud)
文件说:
请注意,如果将键设置为等效于Return,则该按钮将成为默认按钮.
因此,你正确地做到了.您可以在设置等效键后尝试此操作:
[button setNeedsDisplay:YES];
Run Code Online (Sandbox Code Playgroud)
这会强制按钮重绘自己.
归档时间: |
|
查看次数: |
9357 次 |
最近记录: |