Я хочу, чтобы мое приложение Mac открывало свое главное окно и выходило при любом движении мыши.
Это работает, за исключением того, что сначала мне нужно нажать на окно, а затем переместить мышь, чтобы мое приложениечтобы выйти.
Чтобы создать это простое приложение, я использовал Xcode и встроенный проект «Какао Mac» с «Использовать раскадровки», затем в моем ViewController.swift
я отредактировал следующим образом:
override func viewDidLoad() {
super.viewDidLoad()
NSEvent.addGlobalMonitorForEvents(matching: .mouseMoved) { event in
NSApplication.shared.terminate(self);
}
}
Я думаю, что это может быть проблемой, чтобы сосредоточиться в первую очередь?Однако, когда приложение запускается, мне кажется, что оно уже сосредоточено на главном окне.
Есть мысли, где я делаю это неправильно?
Мое последнее желание - сделатьприложение работает в полноэкранном режиме и работает, добавляя одну строку, как показано ниже.Проблема в том, что после входа в полноэкранный режим «MouseMoved» больше не отвечает, даже когда я щелкаю внутри окна:
override func viewDidLoad() {
super.viewDidLoad()
view.enterFullScreenMode(NSScreen.main!, withOptions: nil)
NSEvent.addGlobalMonitorForEvents(matching: .mouseMoved) { event in
NSApplication.shared.terminate(self);
}
}
ОБНОВЛЕНИЕ (17 декабря 2018 г.):
В качестве обновления моего билета я наконец-то решил выйти из приложения по событию keyDown (вместо события mouseMoved), которое я обработал следующим образом:
class ViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
override func keyDown(with event: NSEvent) {
NSApplication.shared.terminate(self);
}
...
}
...
}
(Более того, этосовместим с полноэкранным режимом, что приятно.)