diff --git a/ClashX/ViewControllers/ClashWebViewContoller.swift b/ClashX/ViewControllers/ClashWebViewContoller.swift index 7f5174a..9b3cf16 100644 --- a/ClashX/ViewControllers/ClashWebViewContoller.swift +++ b/ClashX/ViewControllers/ClashWebViewContoller.swift @@ -49,6 +49,11 @@ class ClashWebViewContoller: NSViewController { }.disposed(by: disposeBag) loadWebRecourses() + + NSEvent.addLocalMonitorForEvents(matching: .keyDown) {[weak self] in + self?.keyDown(with: $0) + return $0 + } } func loadWebRecourses() { @@ -83,6 +88,15 @@ class ClashWebViewContoller: NSViewController { NSApp.setActivationPolicy(.accessory) } + override func keyDown(with event: NSEvent) { + switch event.modifierFlags.intersection(.deviceIndependentFlagsMask) { + case [.command] where event.characters == "w": + self.view.window?.close() + default: + break + } + } +