Создание флажка программно с помощью Cocoa

Мне нужно создать флажок программно в Cocoa, и когда я попытаюсь сделать кнопку с ButtonType, установленным в NSSwitchButton, она отобразит заголовок, который я дал ему, но не флажок. Я думаю, что чего-то не хватает, но я не могу найти какие-либо ресурсы о создании таких вещей, как флажки без использования графического интерфейса Xcode. Может ли кто-нибудь связать хороший ресурс, пожалуйста. Кроме того, я не думаю, что размещение моего кода было бы полезным, потому что оно было завершено в пользовательский API lisp.

Ответы

Ответ 1

Вопрос немного старый, поэтому вы, вероятно, уже поняли это, но я нашел его, ища эту точную вещь. Алекс танцевал вокруг решения, фактически не предоставляя его. Итак, для Google и всего человечества: как программно создать флажок в 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];

Ответ 2

Я не думаю, что кнопки создаются по умолчанию при создании программно. Проверьте метод setBezelStyle:, а также setBezeled: и setBordered:. Один из них должен дать вам то, что вы хотите.

Ответ 3

Мне не удалось выполнить setImagePosition правильно, и это не отображало флажок.