NSPopUpButtonCell all'interno della cella personalizzato non pop-up quando si fa clic
-
06-09-2019 - |
Domanda
Ho creato una sottoclasse personalizzata di NSCell con una NSImageCell, alcuni NSTextFieldCells, ed un NSPopUpButtonCell.
Sono l'inizializzazione della cella di pop-up utilizzando:
myPopUpCell = [[NSPopUpButtonCell alloc] init];
[myPopUpCell setBordered:NO];
[myPopUpCell setAutoenablesItems:NO];
[myPopUpCell addItemsWithTitles:[NSArray arrayWithObjects:@"Item1", @"Item2", @"Item3"]];
E il disegno in drawInteriorWithFrame:inView:
Tutto sembra funzionare grande, solo che quando si fa clic sulla cella pop-up durante l'esecuzione la mia app la cella non pop-up. Qualche suggerimento su quello che potrebbe essere sbagliato?
Soluzione
Disegnare la pila a bottone a comparsa in drawInteriorWithFrame:inView:
sta andando a fare proprio questo; disegnare, ma nient'altro. Gestione degli eventi click non è correlata al disegno, quindi si sta andando ad avere per fare un certo lavoro in cella personalizzato per interpretare gli eventi del mouse, e se sono all'interno della struttura che si sta utilizzando per il pulsante pop-up, passarli alla pila a bottone. Inizia con la sottoclasse dei metodi elencati nella documentazione NSCell sotto monitoraggio il mouse, come –trackMouse:inRect:ofView:untilMouseUp:
, e si dovrebbe essere in grado di capire ciò che è necessario per fare in modo corretto l'atto pila a bottone.
A seconda di quello che stai facendo si può effettivamente trovare più facile disegnare la stringa del titolo da soli, e basta usare +popUpContextMenu:withEvent:forView:
di NSMenu.