这是左上角的放大镜玻璃:
我尝试了两种方法,但都失败了。
点击放大镜后,创建一个新光标(带有放大镜玻璃图像的光标,或者交叉场,无论如何)并按下它,然后调用
nextEventMatchingMask:untilDate:inMode:dequeue:
的{{1}}直到吃完所有事件
我们收到NSApplication
个活动。它确实有效但不完美,当点击点离开原始窗口时,其他窗口或应用程序将被排序。
创建一个NSColorPanel,尝试向面板发送虚假鼠标单击事件。它适用于色轮,但是一旦我将事件位置更改为放大镜玻璃按钮,它就无效。
[1]中的问题:在用户点击左键之前,我怎么能禁止调度所有系统鼠标事件?
[2]中的问题:这可能吗?
感谢您的回复。
答案 0 :(得分:3)
如果我们想要阻止系统事件调度,可以使用Quartz事件服务,但是它有两个问题:
不可能使方法1成功。
受@CodaFi的启发,我决定使用NSWindow的子类来实现它。在gitbub https://github.com/wentingliu/ScreenPicker创建了一个示例项目,然后查看它。