Mam tutaj bardzo dziwny problem z NSMenu.Dziwny problem z NSMenuItem, niestandardowym widokiem i mouseUp:
Około połowa elementów NSMenuItems, których używam, ma niestandardowe widoki na nich za pomocą metody setView: na NSMenuItem. W tym niestandardowym widoku zaimplementowałem mouseUp: do przechwytywania, gdy użytkownik kliknie na element menu, i działa to doskonale przy pierwszym otwarciu menu.
Po raz drugi mysz nie zostanie wywołana w żadnym z tych elementów menu, jeśli przytrzymam mysz nieruchomo po kliknięciu. Jeśli jednak kliknę w dół, przesuń nieco lekko kursor i zwolnij wywołanie myszy. Z jakiegoś powodu coś przechwytuje te zdarzenia, ale tylko za drugim razem pojawia się menu i przechodzi, jeśli kursor przesunie się po zdarzeniu mouseDown. (Z jakiegoś powodu mouseDown nigdy nie jest wywoływany, w pierwszym lub drugim wyglądzie menu).
Ktoś ma pojęcia, co się tutaj dzieje? Co przechwytuje zdarzenia myszy i dlaczego przechodzą one do mojego widoku niestandardowego przy pierwszym wyświetleniu menu, ale nie na drugim?
również przechodzi gdybym dwukrotne kliknięcie (następnie mouseUp zostanie wywołany dwukrotnie) przy drugim wyświetleniu menu. –
Więc muszę NSTextViews na górze tego widoku. Otrzymują one mouseDown, ale również zaczynają działać w tym samym czasie, co ich superview. To prawie tak, jakby coś było na wierzchu NSMenu przechwytującego zdarzenia myszy. –