Мне нужно создать флажок программно в Cocoa, и когда я попытаюсь сделать кнопку с ButtonType, установленным в NSSwitchButton, она отобразит заголовок, который я дал ему, но не флажок. Я думаю, что чего-то не хватает, но я не могу найти какие-либо ресурсы о создании таких вещей, как флажки без использования графического интерфейса Xcode. Может ли кто-нибудь связать хороший ресурс, пожалуйста. Кроме того, я не думаю, что размещение моего кода было бы полезным, потому что оно было завершено в пользовательский API lisp.Создание флажка программно с использованием Cocoa
15
A
ответ
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];