0

我正在编写我的第一个 Cocoa 应用程序,我想制作一个“轨迹球 / 眼球 / 轨迹球 / 不管它叫什么”按钮来旋转 3D OpenGL 场景。

当您选择 3D 图表时,Pages(Apple iWork 套件)中有一个自定义 Cocoa 控件的完美示例。经过一些黑客攻击后,这个控件似乎被引用为SFC3DRotateWidget. 这是 Pages 中控件的屏幕截图

也许这个小部件是可重复使用的,但我没有找到如何或在哪里。所以我尝试重新创建它。

我对 Cocoa 没有经验,所以我不知道该怎么做,也不知道具体在哪里(即如何处理 Interface Builder,如何处理代码......)。

我不确定是否需要覆盖绘图功能。我想使用带有NSTrackingArea(代码)的纹理按钮(Interface Builder)来处理鼠标事件(移动,拖动,...),但该区域必须是矩形的。Apple 使用的自定义控件的交互区域似乎遵循箭头的形状。我读过所以我可以NSBezierPath用来创建一个更具体的区域(仅通过代码?)。

听起来对你有好处吗?我错过了什么吗?

如果您有任何可以分享的提示、技巧或资源,请告诉我们!

谢谢!

4

1 回答 1

0

听起来您想构建一个自定义控件。您可以通过继承 NSControl 来做到这一点,它有一个关于如何做的指南。您可以通过实现各种方法来控制圆形可点击区域以及对鼠标事件的响应。例如,您可以使用mouseDown:相关方法跟踪鼠标事件。

您可能不需要使用任何自定义绘图代码,NSImageView带有各种箭头的子视图可能适合您的目的,除非您宁愿在代码中绘制它们。

于 2012-08-30T14:54:50.060 回答