我正在尝试以编程方式向 View 添加一个按钮,我希望它在单击时保持“插入”状态,直到再次单击它。从我读过的内容来看,用于此目的的按钮似乎是 NSPushOnPushOffButton 。这是Apple对其的描述:



它在我的程序中不起作用,所以我制作了一个 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];

将其添加到您的示例代码后,它按预期工作。

关于objective-c - NSPushOnPushOffButton 不停留 "Pushed In",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17506712/

10-12 05:40