Dopo aver caricato il pennino con NSViewController & # 8230; come posso accedere al NSButton nel pennino?

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

Domanda

Ho eseguito la sottoclasse di NSViewController con IBOutlets collegati a un NSButton in un pennino secondario.

Posso creare un'istanza di NSViewController e applicare la vista in un menu NSM - funziona benissimo - ma come posso accedere al pulsante per cambiarne il titolo?

Dato che NSViewController ha IBOutlet, ho pensato che lo avrei fatto tramite il controller.

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

Qualche suggerimento su dove andare da qui?

Modifica per aggiungere: la classe toDoViewController -

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

@end
È stato utile?

Soluzione

[viewController [toDoButton setTitle:someStringHere]];

Come direbbero gli interpreti della fiction interattiva, "Sembra che manchi un verbo".

Hai un ricevitore ( viewController ) e un'espressione di messaggio completa ( [toDoButton setTitle:…] ) e parentesi, ma manca un selettore. Pertanto, questa non è un'espressione di messaggio valida.

Esistono due possibilità:

  1. Intendi inviare un messaggio al controller della vista, passando il risultato di setTitle: come argomento, e hai dimenticato il selettore. Lo trovo improbabile, perché setTitle: di NSButton non restituisce nulla.
  2. Intendi ottenere il pulsante dal controller di visualizzazione, quindi inviare al pulsante un messaggio setTitle: . Supponendo che questo controller di visualizzazione sia un'istanza di una sottoclasse di NSViewController in cui è stata aggiunta una proprietà toDoButton , utilizzare [[viewController toDoButton] setTitle: someStringHere] o < codice> [viewController.toDoButton setTitle: someStringHere] .
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top