Tengo un elemento de menú dentro del menú principal de la aplicación y me gustaría enrutar su acción a un controlador de vista (NSViewController
). La jerarquía de la interfaz se ve así: hay un controlador de ventana de la aplicación principal por NSWindowController
. Dentro de la ventana hay una vista dividida, y la vista derecha en la vista dividida está controlada por el NSViewController
.¿Cómo enrutar acciones de menú a un NSViewController dentro de una ventana?
Window + NSWindowController
`-- NSSplitView
`-- NSView
`-- NSView + NSViewController
El elemento del menú está conectado a First Responder en el Interface Builder. El controlador de vista en cuestión implementa el método apropiado, pero el elemento del menú permanece desactivado. Cuando muevo el método al NSWindowController
, el elemento del menú se habilita.
Pensé que tenía que llevar el controlador de vista a la cadena de respuesta, por lo que lo configuré como nextResponder
para el controlador de ventana; sin cigarro ¿Qué estoy haciendo mal?
Puede agregar un objeto en IB que represente a su Controlador. Luego, vincule la acción del menú a la IBAcción de su controlador. –
Desafortunadamente eso no es posible, los controladores de visualización cambian de acuerdo con lo que se seleccionó en el panel de vista dividida izquierdo. – zoul
Luego tendrá que reasignar la acción del menú cada vez que la vista se enfoque. Para acceder al menú: [[[[NSApp mainMenu] itemWithTitle: @ "ItemName"] menu] itemWithTitle @ "ItemName] setAction: @" Selector (theSelector)] –