2009-09-10 3 views
15

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

ответ

3

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

1

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

34

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