我正在尝试以编程方式将按钮添加到视图中,我希望它在单击时保持"推入"状态,直到再次单击为止。从我读到的内容来看,用于此操作的按钮似乎是NSPushOnPushOffButton
。以下是苹果对它的描述:
第一次点击会突出显示并导致按钮被"按下"in",如果按钮有边框;第二次单击可使其恢复正常状态此选项在界面生成器中称为"Push On Push Off"按钮检查器。
它在我的程序中不起作用,所以我做了一个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
似乎必须设置一个"边框样式",例如
[button setBezelStyle:NSRegularSquareBezelStyle];
在将其添加到示例代码中之后,它就如预期的那样工作了。