创建的凹陷NSButton无法正确显示

koo*_*orx 3 macos cocoa objective-c nsbutton

我刚刚以NSRecessedBezelStyle NSButton编程方式创建了一些基本的代码,如下所示:

NSButton *btn = [[NSButton alloc] initWithFrame:NSMakeRect(80 + 110 * i, 11, 100, 19)];
[btn setTitle:@"Normal"];
[btn setButtonType:NSPushOnPushOffButton];
[btn setBezelStyle:NSRecessedBezelStyle];
Run Code Online (Sandbox Code Playgroud)

但结果是这样的:

图片

如您所见,第一个和第二个按钮是以编程方式创建的,第三个和第四个按钮是在IB中创建的.

按钮在处于ON状态时看起来很好,但在OFF状态下不一样.

用IB制作的第三个没有显示背景颜色(这是我想要的),但是我在代码中创建的第一个具有背景颜色.我怎么解决这个问题?

NSG*_*God 5

在创建按钮期间,您似乎需要添加一行:

[btn setShowsBorderOnlyWhileMouseInside:YES];
Run Code Online (Sandbox Code Playgroud)