Zwykłe aplikacje OSX zjadają pierwsze kliknięcie myszą, gdy nie są skupione na pierwszym ustawieniu ostrości aplikacji. Następnie przyszłe kliknięcia są przetwarzane przez aplikację. Przycisk play/pause iTunes i Finder zachowują się inaczej, pierwsze kliknięcie działa, nawet gdy nie jest ustawione. Szukam sposobu zmuszenia istniejącej aplikacji (Remote Desktop Connection.app) do działania na pierwszym kliknięciu, a nie tylko skupienia.Spraw, aby aplikacja OSX reagowała na pierwsze kliknięcie myszą, gdy nie jest aktywna.
Odpowiedz
Sprawdź, czy NSView akceptujeFirstMouse, może być tym, czego szukasz.
acceptsFirstMouse: Zastąpiony przez podklasy, aby powrócić TAK, jeśli odbiornik ma zostać wysłany jako mouseDown: wiadomość o początkowym zdarzeniu, NIK, jeśli nie.
- (Bool) acceptsFirstMouse (NSEvent *) theEvent
Parametry theEvent Początkowe zdarzenia myszy w dół, która musi być przez odbiornik w każdym oknie.
Dyskusja Odbiornik może albo zwrócić wartość bezwarunkowo, albo użyć lokalizacji zdarzenia, aby określić, czy chce tego zdarzenia. Domyślna implementacja ignoruje zdarzenia i zwraca wartość NIE.
Zastąp tę metodę w podklasie, aby umożliwić instancji reagowanie na kliknięcia. Dzięki temu użytkownik może kliknąć widok w nieaktywnym oknie, aktywując widok za pomocą jednego kliknięcia, zamiast klikać najpierw, aby okno było aktywne, a następnie klikając widok. Większość obiektów widoku odrzuca próbę kliknięcia, więc wydarzenie po prostu aktywuje okno. Wiele obiektów kontrolnych, takich jak instancje NSButton i NSSlider, akceptuje je, więc użytkownik może natychmiast manipulować formantem bez konieczności zwolnienia przycisku myszy.
// Zakładając, że masz 1 kontroler widoku, który zawsze się kręci. Over ride the loadview. N.B. to nie zadziała 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];
}
}
To jest, szczerze mówiąc, beznadziejne rozwiązanie. –
Możesz spróbować przesłonić widok zawartości nswindow, aby był mniej delikatny. – johndpope
- 1. Spraw, aby qTip nie zniknął po najechaniu myszą na podpowiedź
- 2. Jaki jest najlepszy sposób, aby aplikacja kliencka natychmiast reagowała na aktualizację w bazie danych?
- 3. aplikacja wyjście gdy kliknięcie przycisku - iOS
- 4. Przełącza klasę przycisków Bootstrap, gdy jest aktywna
- 5. Arkusz Google - zaznacz cały wiersz, gdy komórka jest aktywna
- 6. Spraw, aby obraz zmienił kolor na czarno-biały po najechaniu myszą
- 7. qTip2 - Odśwież etykietę, gdy jest aktywna
- 8. Spraw, aby klient wcf czekał na oddzwonienie
- 9. Kliknięcie myszą z wieloma td rowspan
- 10. Spraw, aby aplikacja iPhone działała na iPadzie, aby spełnić wymagania Apple
- 11. JQuery pokazywać i ukrywać div na kliknięcie myszą (ożywiony)
- 12. Jak mogę sprawdzić, czy moja aplikacja jest aktywna?
- 13. Spraw, aby PowerShell sądził, że obiekt nie jest wymienny.
- 14. BLE Powiadomienie, gdy aplikacja nie jest uruchomiona
- 15. Jak mogę zasymulować kliknięcie myszą w określonej pozycji na ekranie?
- 16. JPA Żadna transakcja nie jest obecnie aktywna
- 17. Catching podwójne kliknięcie w Cocoa OSX
- 18. Czy istnieje sposób na kliknięcie linku w Terminalu OSX?
- 19. Jak obsługiwać przycisk Wstecz, gdy aktywna jest funkcja startActivityForResult?
- 20. WPF - gesty dotykowe - zablokowane kliknięcie myszą w przypadku przewijania
- 21. klasa aktywna nie działająca na stronie
- 22. Spraw, aby Emacs zignorował pliki * .orig.
- 23. jQuery: Wykryj kliknięcie myszą i otwórz cel w nowej karcie
- 24. Rejestrowanie jQuery click, pierwsze i drugie kliknięcie
- 25. Spraw, aby Pylint zadbał o puste linie.
- 26. android studio otwarte tryb debugowania, gdy aplikacja jest uruchomiona
- 27. HKWorkoutSession nie wznawia niestandardowej aplikacji treningowej, jeśli ekran zostanie zablokowany lub zmieniana jest aktywna aplikacja
- 28. Upewnij się, że moja gra XNA jest aktywna przed obsługą zdarzeń myszy i klawiatury.
- 29. Spraw, aby PHPStorm był zawsze zalogowany na FTP
- 30. Spraw, aby TeamCity usuwał wszystkie gałęzie git
Twoje przykłady nie są całkowicie poprawne. iTunes obsługuje klikanie tylko w kilku miejscach, np. gdy okno jest w trybie mini. – benzado