2009-09-10 5 views
15

Necesito crear una casilla de verificación programáticamente en Cocoa y cuando intento y hago un botón con ButtonType establecido en NSSwitchButton, aparece el título que le di pero no la casilla de verificación. Creo que me falta algo, pero no puedo encontrar recursos para hacer cosas como casillas de verificación sin usar la GUI de Xcode. ¿Alguien puede vincular un buen recurso por favor? Además, no creo que publicar mi código sea útil porque todo está envuelto en una API de lisp personalizada.Crear una casilla de verificación programáticamente utilizando Cocoa

Respuesta

3

No creo que los botones se engañen de manera predeterminada cuando se crean mediante programación. Compruebe el método setBezelStyle:, así como setBezeled: y setBordered:. Uno de esos debe darle lo que quiere.

1

No se pudo ejecutar setImagePosition correctamente y esto causaba que no se mostrara la casilla.

34

La pregunta es un poco antigua, por lo que probablemente ya la hayas descifrado, pero la encontré mientras buscaba esto exactamente. Alex bailó alrededor de la solución sin proporcionarla realmente. Entonces, aquí, para Google y toda la humanidad: cómo crear programáticamente una casilla de verificación en 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]; 
Cuestiones relacionadas