Jestem nowy w programowaniu komputerów Mac i chcę uruchamiać zdarzenia, gdy kursor wchodzi lub wychodzi z głównego okna. Czytałem coś o NSTrackingArea, ale nie rozumiem dokładnie, co robić.Jak korzystać z NSTrackingArea
Odpowiedz
Apple dostarcza dokumentację i przykłady dla NSTrackingAreas.
Najprostszym sposobem śledzenia, kiedy mysz wchodzi lub istnieje, jest ustawienie obszaru śledzenia w treści okna. To jednak nie będzie śledzić pasek narzędzi okna za
Podobnie jak szybki przykład w niestandardowym Treści kodzie:
- (void) viewWillMoveToWindow:(NSWindow *)newWindow {
// Setup a new tracking area when the view is added to the window.
NSTrackingArea* trackingArea = [[NSTrackingArea alloc] initWithRect:[self bounds] options: (NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways) owner:self userInfo:nil];
[self addTrackingArea:trackingArea];
}
- (void) mouseEntered:(NSEvent*)theEvent {
// Mouse entered tracking area.
}
- (void) mouseExited:(NSEvent*)theEvent {
// Mouse exited tracking area.
}
Należy również wdrożyć NSView za updateTrackingAreas metody i przetestowania obszaru śledzenia wydarzenia, aby upewnić się, to jest właściwy.
Odpowiedź od Matt Bierner bardzo mi pomogła; wymagające wdrożenia metody -viewWillMoveToWindow:
.
Chciałbym również dodać, że będzie trzeba także realizować to, jeśli chcesz obsługiwać obszary śledzenia gdy widok jest zmieniany:
- (void)updateTrackingAreas
{
// remove out-of-date tracking areas and add recomputed ones..
}
w niestandardowej podklasy, aby obsługiwać zmieniający geometrię widoku za; To będzie automatycznie wywoływane dla Ciebie.
- 1. Jak zaimplementować mysz NSTrackingArea?
- 2. Jak korzystać z find_module?
- 3. Jak korzystać z RedirectToRoute?
- 4. Jak korzystać z WSDL
- 5. Jak korzystać z kCTSuperscriptAttributeName?
- 6. Jak korzystać z pgdb.executemany?
- 7. Jak korzystać z org.mockito.AdditionalMatchers.gt?
- 8. Jak korzystać z createTransport?
- 9. Jak korzystać z UIRemoteNotificationTypeVoIP?
- 10. Jak korzystać z onResume()?
- 11. Jak korzystać z phantomjs?
- 12. Jak korzystać z Form.ShowDialog?
- 13. jak korzystać z particles.js?
- 14. Jak korzystać z MonadRandom?
- 15. Jak korzystać z ReadWriteLock?
- 16. Jak korzystać z QueryPerformanceCounter?
- 17. Jak korzystać z QTextBlock?
- 18. Jak korzystać z cepstral?
- 19. Jak korzystać z metodyWindowFocusChanged()?
- 20. Jak korzystać z tekstu?
- 21. Jak korzystać z MediaSessionCompat?
- 22. Jak korzystać z navigator.app.exitApp()?
- 23. Jak korzystać z MPI_Type_create_subarray?
- 24. Jak korzystać z Microsoft.Scripting.Hosting?
- 25. Jak korzystać z PackageManager.addPreferredActivity()?
- 26. Jak korzystać z Html.Action?
- 27. Jak korzystać z UIPageControl?
- 28. Jak korzystać z cscope?
- 29. Jak korzystać z BottomSheetDialog?
- 30. Jak korzystać z NSSM
Okay, to będzie pytanie noob, ale gdzie muszę umieścić kod? Gdzie mogę znaleźć kod widoku niestandardowego? Czy muszę podłączyć obiekt do widoku w programie Interface Builder, tak jak robię to podczas korzystania z gniazdek i działań? – icant
Ten kod powinien zostać umieszczony w niestandardowej podklasie UIView. Następnie niestandardowy UIView powinien zostać dodany jako widok zawartości okna. Za pomocą Konstruktora interfejsów utwórz lub wybierz widok treści dla okna i określ jego klasę, używając panelu Inspektora Konstruktora interfejsów, aby była klasą niestandardowego interfejsu UIView. –
Dzięki stary, to działa! – icant