Creé una subclase de NSImageView
para capturar los eventos mouseEntered
y mouseExited
. Pero solo se llaman los eventos mouseUp
y mouseDown
. Cómo capturar los eventos mouseEntered
y mouseExited
en la subclase NSImageView
?mouseEntered y mouseExited no llamados en NSImageView SubClass
27
A
Respuesta
69
Si desea utilizar mouseEntered:
y mouseExited:
Debe usar NSTrackingArea
. Aquí está la referencia NSTrackingArea Class Reference.
Ejemplo:
//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 Versión de respuesta @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)
}
Cuestiones relacionadas
- 1. Swing no activará mouseEntered/mouseExited correctamente después de los eventos de la rueda del mouse?
- 2. calloutAccessoryControlTapped no llamados/desencadenaron
- 3. GIF animado en NSImageView
- 4. Node.js app.get no siendo llamados
- 5. mouseExited no se llama cuando el mouse abandona trackingArea mientras se desplaza
- 6. NSURL → → NSImage NSImageView
- 7. NSImageView + Color de fondo
- 8. NSImageView esquinas redondeadas + carrera
- 9. Asegurar métodos no-burlado no son llamados en Mockito
- 10. Moq y accediendo a los parámetros llamados
- 11. llamados argumentos opcionales PHP?
- 12. Zoom de acercamiento de imagen en NSImageView
- 13. UINavigationControllerDelegate métodos no llamados (código de demostración en github)
- 14. Agregar una sombra a un NSImageView
- 15. widgets de Android: no onDataSetChanged llamados por updateAppWidget()
- 16. Moq - verificar que no hay métodos fueron llamados
- 17. múltiples métodos llamados 'etiqueta' encontraron
- 18. ¿Cómo puedo animar un interruptor de contenido en un NSImageView?
- 19. obtener el tamaño real en la visualización NSImageView
- 20. C++ Demasiados destructores llamados tan pocos objetos
- 21. Obtener los límites de un NSImage dentro de un NSImageView
- 22. ¿Por qué no se crean instancias de los miembros de clase de plantilla no llamados?
- 23. ¿Cómo crear un NSImageView con una esquina redondeada?
- 24. parando eventos del ciclo de vida IOS5 automáticamente siendo llamados
- 25. no LoaderCallbacks.onLoadFinished llamados si cambio de orientación que sucede durante la ejecución AsyncTaskLoader
- 26. ¿Por qué los productos llamados minterms y sumas se llaman maxterms?
- 27. No se puede utilizar la columna de identidad con la generación de claves <union-subclass> (TABLE_PER_CLASS)
- 28. Múltiples argumentos a la función llamados por pthread_create()?
- 29. ¿Puedo desambiguar a la fuerza métodos sobrecargados llamados por Rhino?
- 30. Implementación de .NET ClickOnce y ensamblados incorrectos llamados después de la versión actualizada
Sólo otro "¿por qué tengo que lidiar con esta basura" momento con las API de Apple. – ArtOfWarfare
@ArtOfWarfare O es la realidad de tener una jerarquía de vistas complejas y no querer invocar potencialmente cientos de miles de métodos cuando el usuario simplemente desliza el puntero sobre un pedazo de UI. Esta es la edad de edad ** Nunca sondear, siempre tire. ** – bbum
Bingoo, trabajado como el encanto – Pete