我正在尝试以编程方式向视图添加按钮,我希望它在单击时保持“推入”状态,直到再次单击它。从我读过的内容看来,用于此的按钮似乎是NSPushOnPushOffButton
。这是Apple对它的描述:
首先点击两个高亮显示并使按钮被“推送” 在“如果按钮有边界;再次单击将其恢复为正常状态 州。此选项在Interface Builder中称为“Push On Push Off” Button Inspector。
它没有在我的程序中工作所以我制作了一个SSCCE,我将在下面包含。我的问题是点击时按钮没有停留,而是像普通按钮一样弹出。我不确定我是否遗漏了关于这个按钮应该如何执行的内容,或者我是否只是错误地实现它(这是我第一次尝试以编程方式执行UI),但其他按钮类型如此作为NSToggleButton
工作,除非NSPushOnPushOffButton
有一些特别之处,否则我不知道哪里出错了。如果有人可以建议一个更好的解决方案或解释我哪里出错将会很好。谢谢!
#import "AppDelegate.h"
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSRect buttonFrame = NSMakeRect(0,0,200,200);
NSButton *button = [[NSButton alloc]initWithFrame:buttonFrame];
[self.window.contentView addSubview:button];
[button setButtonType:NSPushOnPushOffButton];
}
@end
答案 0 :(得分:2)
您似乎必须设置“挡板样式”,例如
[button setBezelStyle:NSRegularSquareBezelStyle];
将其添加到示例代码后,它按预期工作。