Après le chargement de la pointe avec NSViewController & # 8230; Comment accéder au NSButton dans la plume?

StackOverflow https://stackoverflow.com/questions/1809656

Question

J'ai sous-classé NSViewController avec IBOutlets connecté à un NSButton dans une nib secondaire.

Je peux instancier NSViewController et appliquer la vue dans un NSMenu - cela fonctionne très bien - mais comment puis-je accéder au bouton pour changer son titre?

Étant donné que NSViewController comporte des IBOutlets, j'ai supposé que je le ferais via le contrôleur.

//this part works great
NSViewController *viewController = [[toDoViewController alloc] initWithNibName:@"toDoView" bundle:nil];
NSView *newView = [viewController view];
newMenuItem.view = newView;

//this part not so much
[viewController [toDoButton setTitle:someStringHere]];

Des indications sur où aller à partir d'ici?

Modifier pour ajouter: la classe toDoViewController -

@interface toDoViewController : NSViewController {
    IBOutlet NSButton *checkBoxButton;
    IBOutlet NSButton *toDoButton;
}

@end
Était-ce utile?

La solution

[viewController [toDoButton setTitle:someStringHere]];

Comme le diraient les interprètes de fiction interactifs, il semble manquer un verbe. & # 8221;

Vous avez un destinataire ( viewController ) et une expression de message complète ( [toDoButton setTitle: & # 8230;] ), ainsi que des crochets, mais il vous manque un sélecteur. En tant que tel, ce n'est pas une expression de message valide.

Il y a deux possibilités:

  1. Vous voulez envoyer un message au contrôleur de vue en transmettant le résultat de setTitle: en tant qu'argument et vous avez oublié le sélecteur. Je trouve cela peu probable, car setTitle: de NSButton ne renvoie rien.
  2. Vous voulez obtenir le bouton du contrôleur de vue, puis lui envoyer un message setTitle: . En supposant que ce contrôleur de vue soit une instance d'une sous-classe de NSViewController dans laquelle vous avez ajouté une propriété toDoButton , utilisez [[viewController toDoButton] setTitle: someStringHere] ou < code> [viewController.toDoButton setTitle: someStringHere] .
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top