2012-08-30 54 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'开始,看起来它可以做到这一点。 谢谢你的提示! –