Скрыть курсор мыши на OS X через несколько секунд - PullRequest
2 голосов
/ 27 сентября 2010

Для моего полноэкранного приложения я хочу скрыть курсор через несколько секунд, если он не перемещен, как в полноэкранном режиме в QuickTime или iTunes. Предположительно я собираюсь позвонить [NSCursor setHiddenUntilMouseMoves:YES], но как узнать, когда позвонить?

Предположительно, я ищу то же, что и Скрыть курсор мыши после простоя , но на Mac. Я не мог найти способ получить подобное "простой". (Плюс, мне, наверное, наплевать на события клавиатуры, только движение мыши.)

Ответы [ 2 ]

5 голосов
/ 27 сентября 2010

Вы можете узнать время простоя курсора (и, если хотите, клавиатуры), используя: CGEventSourceSecondsSinceLastEventType(kCGEventSourceStateCombinedSessionState, kCGEventMouseMoved)

Код Swift 3: CGEventSource.secondsSinceLastEventType(CGEventSourceStateID.combinedSessionState, eventType: CGEventType.mouseMoved)

См. Также http://developer.apple.com/library/mac/#documentation/Carbon/Reference/QuartzEventServicesRef/Reference/reference.html. Вероятно, вам придется опрашивать эту функцию каждые несколько секунд, и вы должны предположить, что пользователь переместил курсор, если время возврата уменьшилось.

1 голос
/ 27 сентября 2010

Как насчет использования NSTimer и проверки через n секунд, ничего не произошло?

...