2011-09-14 48 views
1

我正在写一个简单的可可程序,应该使用滑动手势。 我已经在我的NSView子类中实现了方法swipeWithEvent:,但是当我尝试程序时,该方法从未被调用过。 rotateWithEvent:方法代替。 我在Mac OS 10.7 Lion上使用Xcode 4.1。- (void)swipeWithEvent:(NSEvent *)事件不适用于Lion?

rotateWithEvent:swipeWithEvent:之间的差异?为什么第一个被调用,当我在视图下并做一个旋转手势,并且第二个在相同条件下从未被调用,如果我做了滑动手势?

更新: 我也建了一个简单的项目,只检查swipeWithEvent:rotateWithEvent:方法,但行为是相同的。

回答

2
+0

坦克的代码。现在它可以工作(我已经启用桌面切换使用四个手指手势)。 它适用于swipeWithEvent:还有两个手指滑动识别器。 对于第二个我不得不发表意见如下两行代码:(![个体经营recognizeTwoFingerGestures]) “代码” //如果 //返回; 你知道为什么[默认为boolForKey:@“AppleEnableSwipeNavigateWithScrolls”]总是返回false吗? 在此先感谢 彼得 – Peter

+0

它只在狮子afaik启用。如果解决了问题,请考虑接受答案。 –

+0

增值投票,感谢您分享您的代码 –

0

我认为这会有帮助,如果你发布你的代码,减少到最基本的要领,如果可能的话。

要看的一件事是确保方法签名完全符合定义。在这种情况下,它应该是:

- (void) swipeWithEvent: (NSEvent*) event 
{ 
    NSLog(@"A swipe happened"); 
} 

确保您的定义与此匹配。由于你有一个rotateWithEvent:这是正常工作,这可能不太可能,但有时一个错字可能蠕变。

你可以做的另一件事是做一个示例项目,除了通过记录)。这可以帮助识别是否有其他的东西ii你的代码或视图层次结构正在妨碍你。