Las aplicaciones OSX normales comen el primer clic del mouse cuando no están enfocadas para enfocar primero la aplicación. Luego los futuros clics son procesados por la aplicación. El botón Reproducir/Pausa de iTunes y el Finder se comportan de manera diferente; el primer clic se activa aunque no esté enfocado. Estoy buscando una forma de forzar a una aplicación existente (Remote Desktop Connection.app) a actuar sobre el primer clic y no solo enfocar.Hacer que la aplicación OSX responda al primer clic del mouse cuando no está enfocado
Respuesta
Compruebe NSView's acceptFirstMouse, puede ser lo que está buscando.
acceptsFirstMouse: Anulado por subclases para devolver SÍ si el receptor debe enviarse un mouseDown: mensaje para un evento inicial de mouse, NO si no.
- (BOOL) acceptsFirstMouse: (NSEvent *) TheEvent
Parámetros TheEvent El evento inicial ratón hacia abajo, que deben estar sobre el receptor en su ventana.
Discusión El receptor puede devolver un valor incondicionalmente o usar la ubicación del evento para determinar si desea o no el evento. La implementación predeterminada ignora theEvent y devuelve NO.
Anule este método en una subclase para permitir que las instancias respondan al clic de destino. Esto permite al usuario hacer clic en una vista en una ventana inactiva, activando la vista con un clic, en lugar de hacer clic primero para activar la ventana y luego hacer clic en la vista. La mayoría de los objetos de vista rechazan un intento de clic, por lo que el evento simplemente activa la ventana. Sin embargo, muchos objetos de control, como las instancias de NSButton y NSSlider, los aceptan, por lo que el usuario puede manipular el control de inmediato sin tener que soltar el botón del mouse.
// Suponiendo que tiene 1 controlador de vista que siempre está dando vueltas. Encima de la vista de carga. nótese bien esto no funcionará pre-yosemite.
- (void)loadView {
NSLog(@"loadView");
self.view = [[NSView alloc] initWithFrame:
[[app.window contentView] frame]];
[self.view setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
int opts = (NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways);
trackingArea0 = [[NSTrackingArea alloc] initWithRect:self.view.bounds
options:opts
owner:self
userInfo:nil];
[self.view addTrackingArea:trackingArea0];
}
- (void)mouseEntered:(NSEvent *)theEvent {
NSLog(@"entered");
if ([[NSApplication sharedApplication] respondsToSelector:@selector(activateIgnoringOtherApps:)]) {
[[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
}
}
Esta es, francamente, una solución sin esperanza. –
Podría intentar sobrescribir la vista de contenido de nswindow para hacerlo menos frágil. – johndpope
- 1. ¿Responder al teclado cuando no está enfocado? (C#, Vista)
- 2. Deshabilitar el clic del mouse cuando está fuera de div
- 3. Mac OSX Java: Recibir eventos del mouse cuando no está activado
- 4. ¿Por qué hacer clic en una ventana secundaria no siempre trae la aplicación al primer plano?
- 5. Distinga entre hacer doble clic con el mouse y hacer clic con el mouse en wpf
- 6. NSWindow registrar eventos del mouse (utilizando NSTrackingArea) incluso si la aplicación no está enfocada?
- 7. Hacer que la aplicación Cocoa responda al comando simple de AppleScript
- 8. Hacer que UISearchBar responda primero cuando vea Cargas
- 9. Liberando la captura del mouse y dejando que el clic del mouse pase
- 10. Simular clic real del mouse
- 11. ToolStrip veces no responde a un clic del mouse
- 12. WPF Popup no provoca que la aplicación se enfoque al hacer clic en
- 13. Hacer que el puntero del mouse se vuelva mano para hacer clic en el botón
- 14. Interceptar clic simple o doble del mouse - solo ejecutar doble clic en el código al hacer doble clic
- 15. ¿Cómo hacer que el cursor del mouse agarre el mouse?
- 16. La aplicación Java hace que la pantalla no responda después de 10 minutos de tiempo de inactividad
- 17. Al hacer clic en el botón del teclado clara de UITextField no está desapareciendo texto
- 18. Restablecer UINavigationController al primer controlador cuando se hace clic en la barra de pestañas
- 19. UIAlertView desaparece cuando la aplicación va al fondo y vuelve al primer plano
- 20. ¿Cómo hacer que un div desaparezca al pasar el mouse sin que parpadee cuando se mueve el mouse?
- 21. Establecer ListBoxItem.IsSelected cuando el niño TextBox está enfocado
- 22. La rueda del mouse no funciona cuando está sobre los controles secundarios de ScrollViewer
- 23. event.preventDefault() al primer clic y luego eliminar
- 24. Evento de vinculación al clic derecho del mouse
- 25. ¿Cómo mantener la selección de WPF TextBox cuando no está enfocado?
- 26. ¿Cómo puedo hacer que WPF ScrollViewer haga clic con el botón central del mouse?
- 27. ¿Hace que mi aplicación Cocoa responda a la tecla de reproducción/pausa del teclado?
- 28. destino al hacer clic
- 29. ¿Cómo cambio el cursor del mouse cuando el botón izquierdo del mouse está presionado?
- 30. Restablecer setinterval al hacer clic
Sus ejemplos no son del todo correctos. iTunes solo admite el clic en algunos lugares, como cuando la ventana está en modo mini. – benzado