2009-01-31 19 views
4

我正在編寫一個程序,該程序在用戶可以縮放的NSScrollView中嵌入了一個NSView。我很樂意設置它,以便用戶可以使用MacBook Air支持的多點觸控捏合手勢和新的一體式MacBook/MacBooks Pro以及Safari和iPhoto等應用程序來縮放視圖。我已經通過蘋果的文檔搜索,並不知道如何做到這一點。如何使用Mac OS X Cocoa事件進行多點觸控手勢

  1. 這是否支持在Mac OS X 10.5 Leopard上使用公共可用的API?
  2. 如果不是,私人API的「壞」程度如何(例如它只是一個未聲明的常量或一組全新的方法)?

回答

12

編輯: Snow Leopard添加了支持的手勢和多點觸控API。見AppKit release notes for Snow Leopard; ⌘F用於「手勢」和「多點觸摸」(原文如此)。如果你使用了下面的代碼,他們會很熟悉,但是可能會有一些細微差別,所以請閱讀新的文檔。


是使用的是Mac OS X 10.5 Leopard的公開可用的API支持?

第10.5.0根本不支持它,而10.5.1到10.5.6使您可以實現未記錄的方法。

如果不是,那麼私人API有多糟糕(例如,它只是一個未聲明的常量或一組全新的方法)?

不錯。 You have to implement some undocumented event methods in your view.由於你是實現方法的一個,如果Apple更改方法,則不應該崩潰;所有將發生的功能都將停止工作。但是,如果您要從事件中檢索絕對(而非增量)放大或旋轉,那麼這些事件仍然是尚未記錄的方法,因此您應該使用respondsToSelector:消息來保護這些消息,並小心執行範圍檢查方法的返回值。

+0

@ x3ro,而不是編輯它來重新定位「編輯」通知,這是一個微不足道的個人審美問題,爲什麼不編輯它以刪除鏈接到未公開的事件方法,因爲它現在是404? – Huperniketes 2011-06-18 12:00:53

相關問題