当OS X Lion窃取事件时丢失NSTouches

时间:2012-01-24 06:06:22

标签: cocoa events osx-lion nsview

我发现当系统检测到手势(例如切换Spaces或移动到Exposé)时,可以在OS X Lion中将多点触控Cocoa应用程序置于奇怪的状态。基本上,我最终看到NSTouchPhaseBegan和NSTouchPhaseMoved阶段的触摸,但是当手势开始时,我完全没有关于那些触摸事件的信息(没有touchesEnded或touchesCancelled)。

我想知道我能做些什么来检测这些事件被取消了,我应该将他们的视觉对应物从屏幕上取下来。用五指捏手势启动任务控制真的很明显;我在屏幕上看到五个球代表我的触摸,他们移动了一点,Mission Control开始了,并且球被卡在屏幕上因为我没有接受过触摸取消触摸(其他触摸是新的触摸,与不同的内存地址)。

因此,背景信息:带有[self setAcceptsTouchEvents:YES][self setWantsRestingTouches:YES]的NSView子类。我已经尝试过侦听NSWorkspace通知,这可以帮助我推断清理触摸字典的时间,但是在系统接管的时候我似乎没有得到任何东西。

0 个答案:

没有答案