2011-09-14 141 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你的代碼或視圖層次結構正在妨礙你。