objective-c cocoa radio-button

objective c - Crear un botón de opción Cocoa programáticamente



objective-c radio-button (3)

Aquí hay un código de muestra para crear botones de radio programáticamente:

//create the radio button prototype NSButtonCell *proto = [[NSButtonCell alloc] init]; [proto setTitle:@"Options"]; [proto setButtonType: NSRadioButton]; //define the matrix size where you''ll put the radio buttons NSRect matrixRect = NSMakeRect(20.0,20.0,125.0,125.0); //define the matrix specifying that it will contain radio buttons of //prototype "proto" defined above, and that it will have 3 radio buttons //arranged on 1 column NSMatrix *matrix = [[NSMatrix alloc] initWithRect: matrixRect mode: NSRadioModeMatrix prototype: (NSCell *)proto numberOfRows:3 numberOfColumns:1]; //this assumes that you connected the window object to an outlet [[windowOutlet contentView] addSubview: matrix]; //set the radio buttons'' titles by getting references to the matrix''s cells NSArray *cells = [matrix cells]; [[cells objectAtIndex:0] setTitle:@"Option 1"]; [[cells objectAtIndex:1] setTitle:@"Option 2"]; [[cells objectAtIndex:2] setTitle:@"Option 3"]; [proto release]; [matrix release];

¡Que te diviertas! Sí, esto se toma de aquí , pero agregué algunos comentarios personales para explicar el proceso.

Necesito hacer un botón de opción Cocoa programáticamente, ¿alguien puede explicar cómo se puede hacer esto o publicar un buen enlace que muestre cómo hacerlo bien?


Tomado desde aquí:

Los botones de radio son, de hecho, una matriz si las celdas de los botones. La selectividad exclusiva es una propiedad de la matriz.

Para crear programáticamente una matriz de celdas de botón, realiza exactamente las mismas operaciones programáticamente que IB hace como resultado de su entrada. Por ejemplo, cree una instancia de NSMatrix, establezca su prototipo de celda en NSButtonCell, establezca los atributos de la matriz a través de sus métodos públicos (los mismos que usa IB) y establezca los atributos de la celda de botón de prototipo y / o todas las celdas de botón contenidas.

También vea este enlace para obtener más código de muestra sobre cómo hacer una NSMatrix programáticamente.