Frage

Ich habe subclassed NSViewController mit IBOutlets in eine NSButton in einer sekundären Feder verhakt.

Ich kann die NSViewController instanziiert und die Aussicht in einem NSMenu anwenden - es funktioniert super - aber wie greife ich auf die Schaltfläche, um die Titel zu ändern

Da die NSViewController hat IBOutlets nahm ich an, ich dies durch den Controller tun würde.

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

Alle Hinweise auf, wo man von hier geht?

Bearbeiten, um hinzuzufügen: die toDoViewController Klasse -

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

@end
War es hilfreich?

Lösung

[viewController [toDoButton setTitle:someStringHere]];

Als interactive fiction Dolmetscher sagen würde: „Das scheint ein Verb zu fehlen.“

Sie haben einen Empfänger (viewController) und einen vollständigen Nachricht Ausdruck ([toDoButton setTitle:…]) und Klammern, aber Sie einen Selektor fehlen. Als solches ist dies keine gültige Nachricht Ausdruck.

Es gibt zwei Möglichkeiten:

  1. Sie meinen, eine Nachricht an den View-Controller zu senden, das Ergebnis der setTitle: als Argument übergeben, und Sie den Wähler vergessen. Das finde ich unwahrscheinlich, weil NSButton der setTitle: gibt nichts zurück.
  2. Sie meinen die Schaltfläche aus den View-Controller erhalten, dann der Taste eine setTitle: Nachricht senden. Unter der Annahme, dass dieser View-Controller ist eine Instanz einer Unterklasse von NSViewController, in dem Sie eine toDoButton Eigenschaft hinzugefügt haben, verwenden entweder [[viewController toDoButton] setTitle:someStringHere] oder [viewController.toDoButton setTitle:someStringHere].
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top