Je suis un peu perplexe quant à la façon d'instruire un NSSegmentedControl
créé par programme pour utiliser une instance de sous-classe d'un NSSegmentedCell
.Définition par programme NSSegmentedCell
Si je veux utiliser un sous-classes NSSegmentedCell
sur un NSSegmentedControl
construit en utilisant IB, il serait aussi simple que de faire ce qui suit:
- Faites glisser un
NSSegmentedControl
dans leNSView
- Cliquez jusqu'à la
NSSegmentedCell
- Dans l'inspecteur, affectez la définition de classe à la sous-classe (par exemple,
myCustomCell
)
Travail terminé.
Cependant, lors de la création d'un programme NSSegmentedControl
comme dans l'exemple simplifié suivant, je ne vois pas comment la sous-classe la cellule ...
-(void)creatSegmentControl {
if (!mySegmentControl)
mySegmentControl = [[NSSegmentedControl alloc]
initWithFrame:NSMakeRect(0,0 400,20)];
[mySegmentControl setSegmentCount:2];
[mySegmentControl setLabel:@"First" forSegment:0];
[mySegmentControl setLabel:@"Second" forSegment:0];
[mySegmentControl setTarget:self];
[mySegmentControl setAction:@selector(segmentClicked:)];
}
NSSegmentedControl
ne semble pas avoir une méthode pour définir la classe à utiliser pour ses instances de cellule de segment.
Comme d'habitude, toute aide est appréciée.
Mise à jour
Essayé la mise en œuvre [mySegmentControl setCellClass:[myCustomCell class]
mais cela ne fonctionne pas non plus. Je pensais que peut-être il a hérité de la possibilité de définir sa classe de cellules comme les autres contrôles AppKit. :-(
Cela doit être possible si ... en quelque sorte ...
La documentation du SDK est peu d'aide ici. Peut-être la solution est de charger votre contrôle segmenté d'une plume qui contient juste le contrôle? –
@Seamus, merci pour la réponse rapide.Je pourrais le mettre dans un NIB, mais j'ai déjà beaucoup de fichiers nib dans mon application, donc je suis un peu hésité à ajouter des NIB juste pour une sous-classe Vous avez raison, les docs offrent peu ou pas d'aide dans ce domaine. – Hooligancat