Istnieje różnica w sposobie obsługi kliknięć kontrolnych i kliknięć prawym przyciskiem myszy przez NSView (jak wskazał jfewtr). Menu kontekstowe pojawi się w przypadku kliknięcia prawym przyciskiem myszy , jeśli kliknięcie wchodzi w zakres widoku podrzędnego, ale nie w przypadku kliknięcia z wciśniętym klawiszem Control .
Byłem zaskoczony tym i faktycznie napisał post o niej z większą ilością szczegółów tutaj: NSView control-click quirks
Istnieje kilka potencjalnych rozwiązań, ale nadrzędnym/dostosowywania całe drzewo podrzędny nie jest prawdopodobnie najlepszym wyborem. Znalazłem najlepszą poprawkę na to, aby wyświetlić menu kontekstowe bezpośrednio w widoku najwyższego poziomu (podklasie NSBox) do sterowania kliknięcie:
- (void)mouseDown:(NSEvent *)theEvent
{
if (theEvent.modifierFlags & NSControlKeyMask)
{
[NSMenu popUpContextMenu:[self menuForEvent:theEvent] withEvent:theEvent forView:self];
}
}
Chociaż to nie jest wielki hardcode ten problem, należy go unika manipulowania lub przechodzenia przez całe drzewo z podzakresu, co może wiązać się z bardziej problematycznymi efektami ubocznymi/błędami.
Mam to samo w tabeli ... dam znać, co znajdę. –