2012-05-29 38 views
9

我已經做了很多與iOS的手勢識別器,但我現在做OS X的工作,我迷路了。如何在OS X中實現手勢識別器?

我想複製Finder中存在的功能,您可以通過雙指滑動(在您的魔術鼠標上)通過目錄樹回退/前進。

我有一個NSWindow的應用程序,看起來很像Finder。我以前使用過的應用程序允許您構建自己的手勢識別器,因此我知道可以這樣做,但我沒有看到任何文檔。

我需要做些什麼來實現這些手勢?

回答

3

您可以在Cocoa Event Handling指南中閱讀Handling Trackpad Events。系統可以檢測一些預先定義的手勢(滑動,旋轉等),或者您可以聽到原始觸摸事件,這些事件沿着NSResponder鏈向上傳播,就像常規鼠標事件一樣。

0

看起來在CZKit中還有一個Event Recognizer類。 https://github.com/CarterA/CZKit

我還沒有使用過(尚),所以YMMV。

+0

在該庫中找不到與手勢相關的任何內容。 – eonist

+0

我還沒有使用它,從README甚至不記得它應該做什麼,但我認爲我指的是在這個目錄中的'CZActionRecognizer'類:https://github.com/CarterA/ CZKit/tree/master/Libraries/CZUI/Classes它看起來應該是一般手勢/動作的基類。看起來你需要自己編寫任何實際的識別器,除非你只是想識別點擊。祝你好運! – livingtech

+0

它是一個潛在的手勢事件的一般事件處理程序?這是我能做出的最好的解釋。對於我猜想的人來說,情境可能很重要。大拇指努力解釋。 :)作爲尋找手勢事件相關信息的其他人的一個提示:我發現有兩種方法。一種是覆蓋NSView中的手勢方法。另一種更現代的方法是將「選擇器」添加到手勢識別器。後者提供了更好的控制手勢何時開始和結束等。雖然同樣可以通過覆蓋來實現。只是不那麼容易。 – eonist

2

蘋果目前擁有:

  • NSClickGestureRecognizer
  • NSMagnificationGestureRecognizer
  • NSPanGestureRecognizer
  • NSPressGestureRecognizer
  • NSRotationGestureRecognizer

可在故事板了。