Как бы я отобразил уведомление на mouseMoved? - PullRequest
0 голосов
/ 28 февраля 2020

Я хотел бы отображать уведомление каждый раз, когда мышь перемещается в течение 15 секунд.

Пока я, кажется, понимаю, мне нужно добавить

window.acceptsMouseMovedEvents = true

и мне нужно переопределить MouseMoved

override func mouseMoved(with event: NSEvent) {
        //print ("MOVED!")
        timer.invalidate()
        displayNotification()
    }
    func displayNotification(){
        var timeLeft = 15

        Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { timer in
            let notification = NSUserNotification()
            notification.title = "Title of notification"
            notification.subtitle = "Subtitle of notification"
            notification.soundName = NSUserNotificationDefaultSoundName
            NSUserNotificationCenter.default.deliver(notification)

            timeLeft -= 1

            if(timeLeft==0){
                timer.invalidate()
            }
        }
    }

Я не могу заставить работать мышь MouseMoved.

1 Ответ

0 голосов
/ 28 февраля 2020

Это заняло у меня довольно много времени, но мне, наконец, удалось это выяснить, я пропустил этот кусок:

NSEvent.addGlobalMonitorForEvents(matching: [.mouseMoved]) { _ in
            self.displayNotification()
        }

Моя единственная проблема: таймер не работает должным образом, когда я перемещаю мышь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...