2009-09-21 7 views

Répondre

9

Voici un exemple de code pour créer des boutons radio programatically:

//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]; 

Amusez-vous! Oui, ceci est pris de here, mais j'ai ajouté quelques commentaires personnels pour expliquer le processus.

+0

Très gentil et merci. Pourquoi ce code n'est-il pas dans le Guide de programmation matricielle? – rocky

4

Taken de here:

Les boutons radio sont en fait une matrice si les cellules de bouton. La sélectivité exclusive est une propriété de la matrice.

Pour créer par programmation une matrice de cellules de bouton, vous faites exactement les mêmes opérations par programme qu'IB effectue à la suite de votre entrée. par exemple. Créer une instance NSMatrix, définir son prototype de cellule sur un NSButtonCell, définir les attributs de la matrice via ses méthodes publiques (les mêmes IB uses), et définir les attributs de la cellule bouton prototype et/ou tous les contenus des boutons

Voir aussi this link pour plus d'exemples de code sur la façon de créer une matrice NSMatrice par programme.

Questions connexes