Estoy trabajando en los detalles de un botón emergente de símbolos, similar a lo que Xcode 3 en la parte superior de la ventana del editor.¿Hay alguna manera de controlar el elemento NSMenuItem que se resalta inicialmente al abrir un menú?
Mi objeto controlador es el delegado del NSMenu
que se muestra cuando se muestra NSPopUpButton
. Implemento los dos métodos numberOfItemsInMenu:
y menu:updateItem:atIndex:shouldCancel:
para completar el menú justo antes de que se muestre.
Sin embargo, el título y la imagen del NSMenuItem
seleccionado tienen que cambiar cada vez que el usuario cambia la selección en el editor NSTextView
, o realiza cambios en el texto; como es el caso con Xcode.
El problema que estoy teniendo es cuando el usuario va a hacer clic en el NSPopUpButton
para mostrar la NSMenu
, el seleccionado NSMenuItem
y el elemento que debe ser seleccionado no coinciden, ya que el menú no tiene el número adecuado de artículos todavía
Me pregunto si hay una forma de controlar qué NSMenuItem
se resalta inicialmente y se hace un seguimiento cuando el usuario hace clic para abrir el menú. Tal como está, el primer elemento siempre resaltado y rastreado o, si el usuario había seleccionado previamente un elemento, ese elemento se resalta y se rastrea.
he intentado explicar lo mejor que pude, pero aquí es una imagen que ilustra mi problema:
Quiero que el elemento resaltado a ser el mismo que el elemento seleccionado cuando el usuario abre el menú. ¿Algunas ideas?
El motivo por el que inicialmente se "rastrea" el elemento seleccionado es que está directamente debajo del puntero del mouse, por lo que si solo abre el menú y lo cierra de nuevo, la selección no cambiará. Si desea cambiar este comportamiento, deberá subclase NSPopUpButton. –