我正在尝试以编程方式将按钮添加到视图中,并且我希望它在单击时保持“推入”状态,直到再次单击它为止。从我读过的内容来看,用于此的按钮似乎是NSPushOnPushOffButton
. 这是苹果对它的描述:
如果按钮有边框,则第一次单击会突出显示并导致按钮被“推入”;第二次单击将其恢复到正常状态。这个选项在 Interface Builder 的 Button Inspector 中称为“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