Ho una voce di menu all'interno del menu principale dell'app e mi piacerebbe indirizzare la sua azione a un controller di visualizzazione (NSViewController
). La gerarchia dell'interfaccia è simile a questa: C'è un controller della finestra dell'app principale da uno NSWindowController
. All'interno della finestra c'è una vista divisa e la vista destra nella vista divisa è controllata dal NSViewController
.Come si indirizzano le azioni del menu a un NSViewController all'interno di una finestra?
Window + NSWindowController
`-- NSSplitView
`-- NSView
`-- NSView + NSViewController
La voce di menu è collegata a First Responder in Interface Builder. Il controller di visualizzazione in questione implementa il metodo appropriato, ma la voce di menu rimane disabilitata. Quando sposto il metodo su NSWindowController
, la voce di menu viene abilitata.
Ho capito che ho bisogno di ottenere il controller di visualizzazione sulla catena di risposta, quindi l'ho impostato come nextResponder
per il controller della finestra; niente sigaro Che cosa sto facendo di sbagliato?
È possibile aggiungere un oggetto in IB, che rappresenta il controller. Quindi collega l'azione del menu all'IBAction del tuo controller. –
Sfortunatamente non è possibile, i controller della vista cambiano in base a ciò che è stato selezionato nel riquadro di visualizzazione divisa sinistra. – zoul
Quindi dovrò ridefinire l'azione del menu ogni volta che la vista viene messa a fuoco. Per accedere al menu: [[[[[NSApp mainmenu] itemWithTitle: @ "ItemName"] menu] itemWithTitle @ "ItemName] setAction: @" Selector (theSelector)] –