0

我是新手 Swift 编码器,试图捕捉鼠标事件和键盘事件。看来我只做后者。主要目标是允许使用 Magic Mouse 2 进行“点击点击”并避免其响亮的点击声。

https://github.com/creasty/Keyboard/blob/master/keyboard/AppDelegate.swift上的完整工作示例

        let eventMask = 
            (1 << CGEventType.keyDown.rawValue) | 
            (1 << CGEventType.keyUp.rawValue) | 
            (1 << CGEventType.leftMouseDown.rawValue) | 
            (1 << CGEventType.leftMouseUp.rawValue)

        guard let eventTap = CGEvent.tapCreate(
            tap: .cghidEventTap,
            place: .headInsertEventTap,
            options: .defaultTap,
            eventsOfInterest: CGEventMask(eventMask),
            callback: appComponent.eventTapCallback,
            userInfo: nil
        ) else {
            fatalError("Failed to create event tap")
        }

键盘按下可以捕捉到,但对鼠标点击没有反应。请指教。谢谢。

MacOS 11.5.2 上的 Xcode 版本 12.5.1 (12E507)

4

1 回答 1

0

感谢@Willeke 和其他人的有用反馈,我们得出了以下解决方案:

diff --git a/keyboard/AppComponent.swift b/keyboard/AppComponent.swift
index 961a81b..abb2f63 100644
--- a/keyboard/AppComponent.swift
+++ b/keyboard/AppComponent.swift
@@ -20,6 +20,8 @@ final class AppComponent {
             if let manager = _eventManager {
                 return manager.handle(proxy: proxy, cgEvent: event)
             }
+        case .leftMouseDown:
+            print("leftMouseDown")
         default:
             break
         }
diff --git a/keyboard/AppDelegate.swift b/keyboard/AppDelegate.swift
index bc39af6..dc16658 100644
--- a/keyboard/AppDelegate.swift
+++ b/keyboard/AppDelegate.swift
@@ -70,8 +70,8 @@ private extension AppDelegate {
     }
 
     func setupEventTap() {
-        let eventMask = (1 << CGEventType.keyDown.rawValue) | (1 << CGEventType.keyUp.rawValue)
-
+        let eventMask = (1 << CGEventType.keyDown.rawValue) | (1 << CGEventType.keyUp.rawValue) | (1 << CGEventType.leftMouseDown.rawValue)
+        
         guard let eventTap = CGEvent.tapCreate(
             tap: .cghidEventTap,
             place: .headInsertEventTap,
于 2021-08-27T08:16:16.320 回答