Stworzyłem podklasę NSImageView
, aby przechwycić zdarzenia mouseEntered
i . Ale tylko mouseUp
i mouseDown
są wywoływane. Jak przechwycić zdarzenia mouseEntered
i mouseExited
w podklasie mouseEntered
?mouseEntered i mouseExited nie wywołano NSImageView SubClass
27
A
Odpowiedz
69
Jeśli chcesz używać mouseEntered:
i mouseExited:
, musisz użyć NSTrackingArea
. Oto referencja NSTrackingArea Class Reference.
Przykład:
//Add this to Your imageView subclass
-(void)mouseEntered:(NSEvent *)theEvent {
NSLog(@"Mouse entered");
}
-(void)mouseExited:(NSEvent *)theEvent
{
NSLog(@"Mouse exited");
}
-(void)updateTrackingAreas
{
[super updateTrackingAreas];
if(trackingArea != nil) {
[self removeTrackingArea:trackingArea];
[trackingArea release];
}
int opts = (NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways);
trackingArea = [ [NSTrackingArea alloc] initWithRect:[self bounds]
options:opts
owner:self
userInfo:nil];
[self addTrackingArea:trackingArea];
}
5
Swift 3 Wersja odpowiedzi @Justin Boo „s:
private var trackingArea: NSTrackingArea?
override func updateTrackingAreas() {
if let trackingArea = self.trackingArea {
self.removeTrackingArea(trackingArea)
}
let options: NSTrackingAreaOptions = [.mouseEnteredAndExited, .activeAlways]
let trackingArea = NSTrackingArea(rect: self.bounds, options: options, owner: self, userInfo: nil)
self.addTrackingArea(trackingArea)
}
Powiązane problemy
- 1. mouseExited nie jest wywoływane, gdy mysz opuszcza trackingArea podczas przewijania
- 2. iPhone: didSelectRowAtIndexPath nie wywołano
- 3. bibliotece NSURL → NSImage → NSImageView
- 4. NSImageView kliknij dwukrotnie działanie
- 5. Confused o NSImageView skalowania
- 6. NSImageView zaokrąglone rogi + skok
- 7. didRegisterForRemoteNotificationsWithDeviceToken wywołano dwa razy?
- 8. Podgląd kamery AndroidOdwołanie nie wywołano w 4.1
- 9. Sprawdzanie, czy wywołano ClearInterval?
- 10. Ustaw kolor tła NSView i NSImageView w kakao
- 11. 0x80040e51 Opis: "Dostawca nie może wyprowadzić informacji o parametrze i nie wywołano SetParameterInfo."
- 12. Nie wywołano wywołania zwrotnego metody method, w tym modułów
- 13. WebView onPageFinished nie wywołano, gdy jest widoczny MapView.
- 14. Uzyskiwanie ograniczeń NSImage w ramach NSImageView
- 15. Jak utworzyć NSImageView z zaokrąglonym rogiem?
- 16. uzyskać rzeczywisty rozmiar wyświetlania obrazu na NSImageView
- 17. Zoom-In Zoom-Out w NSImageView
- 18. Usunąć powiadomienie, gdy wywołano funkcję addAction?
- 19. Nieprawidłowe, aby funkcja zmieniła odwołanie do zmiennej, z której wywołano?
- 20. Czy nie można stwierdzić, czy funkcja jest funkcją generującą, jeśli wywołano na niej funkcję .bind()?
- 21. swingers słuchacze są przechwytywane przez elementy potomne
- 22. Dziedziczenie: Czy istnieje sposób na odkrycie klasy, z której wywołano metodę?
- 23. Parametry konstruktora i dziedziczenie
- 24. rodzajowych Scala i dziedziczenie
- 25. didReceiveAuthenticationChallenge nie otrzymało połączenia
- 26. Java MouseListener
- 27. Przejrzyste JPanel
- 28. Hover Over efekt w NSCollectionView
- 29. Wiosna danych MongoDB Repozytoria nie implementują dziedziczenie poprawnie
- 30. Nie można uczynić statycznych odniesienie do ogólnych podklasy (Java)
Just another "dlaczego mam do czynienia z tego gówna" moment z API Apple. – ArtOfWarfare
@ArtOfWarfare Albo rzeczywistość posiadania złożonej hierarchii widoków i niemożności wywoływania potencjalnie setek tysięcy metod, gdy użytkownik po prostu przesuwa wskaźnik nad porcją interfejsu użytkownika. To jest wiek stary ** Nigdy nie sondować, zawsze ciągnąć. ** – bbum
Bingoo, pracował jak amulet – Pete