我目前正在开发一个辅助功能应用程序,该应用程序的功能是在按下两个鼠标按钮拖动窗口时触发的。我的应用程序需要打开一个新的无边框窗口,并从正在拖动的窗口中窃取焦点(并防止窗口被进一步拖动(。我的目标是最终在焦点窃取窗口的帮助下调整拖动窗口的大小。我该怎么做?
我在Swift上使用Cocoa框架。以下是我尝试过的:
NSApp.activate(ignoringOtherApps: true)
myAccessibilityWindow.makeKeyAndOrderFront(nil)
辅助功能窗口按预期排列在前面,但在我停止拖动触发窗口之前,它不会窃取焦点(辅助功能窗口中不会触发鼠标事件(。这是不可取的,因为我想尽快窃取鼠标焦点,防止窗口被进一步拖动。
除了使辅助功能窗口成为关键窗口外,还必须模拟鼠标向上移动事件才能停止拖动。
let mouseLocation = NSEvent.mouseLocation
let source = CGEventSource.init(stateID: .hidSystemState)
let mouseUp = CGEvent(mouseEventSource: source, mouseType: .leftMouseUp, mouseCursorPosition: mouseLocation, mouseButton: .left)
mouseUp?.post(tap: .cghidEventTap)
非常感谢Tarun Lalwani。