2012-08-30 45 views
0

我正在寫我的第一個可可應用程序,我想製作一個「軌跡球/眼球/弧球/無論它叫什麼」按鈕來旋轉3D OpenGL場景。如何用Cocoa製作自定義軌跡球/眼球控制?

當您選擇3D圖表時,在頁面(Apple iWork套件)中有一個這種自定義Cocoa控件的完美示例。在一些黑客之後,這個控件似乎被引用爲SFC3DRotateWidgetHere's a screenshot of the control in Pages

也許這個小部件是可重用的,但我沒有找到如何或在哪裏。所以我嘗試重新創建它。

我對可可沒有經驗,所以我不知道該怎麼做,也不知道在哪裏(也就是說如何處理Interface Builder,如何處理代碼......)。

我不確定是否需要重寫繪圖功能。我想用NSTrackingArea(代碼)來處理鼠標事件(移動,拖動,...),但該區域必須是矩形的,使用帶紋理的按鈕(Interface Builder)。 Apple使用的自定義控件的交互區域似乎遵循箭頭的形狀。 I've read on S.O. I can use NSBezierPath to create a more specific area(僅限代碼?)。

這聽起來不錯嗎? 我錯過了什麼嗎?

讓我們知道你是否有任何可以分享的提示,技巧或資源!

謝謝!

回答

0

這聽起來像你想建立一個自定義控件。您可以通過繼承NSControl來完成此操作,其中有a guide on how to do。您可以通過實施各種方法來控制圓形可點擊區域以及對鼠標事件的響應。例如,您可以使用mouseDown:和相關方法跟蹤鼠標事件。

您可能不需要使用任何自定義繪圖代碼NSImageView各種箭頭的子視圖可能適合您的目的很好,除非您更願意在代碼中繪製它們。

+0

好的。我從一個'NSImageView'開始,看起來它可以做到這一點。 謝謝你的提示! –