使用Cocoa编程创建复选框

22

我需要在Cocoa中以编程方式创建复选框,当我尝试使用buttonType设置为NSSwitchButton的按钮时,它会显示标题,但不会将按钮显示为复选框。我认为我漏掉了一些东西,但是我找不到任何关于不使用Xcode GUI创建复选框之类内容的资源。


不确定为什么这个问题被标记为本地化。问题和答案的投票显示它具有价值。对于Cocoa程序员来说,这绝对是一个相关的主题,而不是一个狭窄的情况。使用Cocoa框架在代码中创建控件在许多情况下非常有用。 - charles
3个回答

43

这个问题有点老了,所以你可能已经知道答案了,但是我在搜索这个确切的事情时找到了它。 Alex 跳来跳去地绕着解决方案,但实际上并没有提供解决方案。因此,为了谷歌和全人类:如何在 Cocoa 中以编程方式创建复选框。

NSRect frame;
frame.size.width = frame.size.height = 18;
NSButton *myCheckBox = [[NSButton alloc] initWithFrame:frame];
[myCheckBox setButtonType:NSSwitchButton];
[myCheckBox setBezelStyle:0];  // This is unnecessary. I include it to show that checkboxes don't have a bezel style.

[myView addSubview:myCheckBox];

3

我认为在程序动态创建按钮时,默认情况下不会有边框。请查看setBezelStyle:方法,以及setBezeled:setBordered:方法。其中一个应该可以满足您的需求。


1

我没有正确执行setImagePosition,这导致复选框无法显示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接