2012-03-12 86 views
20

我想知道我怎么可以创建可可定制的部件/控制。 不是一个完整的教程,但一些指导开始研究。我对自定义视图,核心动画等感到困惑,我感到迷茫。可可OSX自定义部件/控制

我看到了很多很酷的控件,像里德应用,或麻雀等。例如:

Sparrow

左侧是一个可折叠的菜单,其中包括动画等我如何能实现相似的东西?我想过使用WebView + HTML + JavaScript,但这看起来并不是一个非常优化的解决方案。

+1

这是一个很广泛的问题 - 你可能需要修改它,使之更加具体。具体问题往往最适用于SO - 模糊的问题可能会被视为“不具有建设性”或“不是真正的问题”。 – Caleb 2012-03-12 23:15:14

回答

24

控件是视图,因此,如果自定义视图迷惑你,你就需要获得关于移动定制控件之前想通了。虽然你应该阅读整个View Programming Guide,该部分叫做Creating a Custom View让你开始创建你自己的看法。尝试创建一个简单的视图,例如绘制一个圆或时间。

当你有意见想通了,转移到自定义控件。大多数控件的工作方式与大致相同。用户触摸它们,并且控件响应:a)跟踪用户的输入,b)改变它的值,c)将它的动作消息发送到它的目标,以及d)通过重绘自己给用户一些反馈。要开始,首先确保您知道如何使用控件。阅读Control and Cell Programming Topics应该有所帮助,并且标题为Subclassing NSControl的部分涵盖(显然)创建您自己的子类。

您提供的例子很显然苹果的Mail.app。窗口左侧的视图可能是NSOutlineView的一个实例,或者它可能是一个自定义类。无论哪种方式,如果您想复制该功能,NSOutlineView将是一个很好的起点。 NSOutlineView是NSTableView的一个子类,它又是NSControl的一个子类,它又是NSView的子类。阅读Outline View Programming Topics以获取入门帮助 - 表格和轮廓非常有用,但使用比按钮和文本字段等基本控件更复杂。

+1

谢谢Caleb,这似乎是一个很好的起点。 – 2012-03-13 00:52:41

+2

这是一个非常好的发送先决条件,通常不在可可中清楚。做得好 – uchuugaka 2013-08-06 06:00:46

4

我知道这只是用户界面的一部分,但我最近编码类似侧边栏的东西。如果您查看源代码,它可能会帮助您了解如何使用自定义控件和单元格。

你可以检查出来Github上:
https://github.com/iluuu1994/ITSidebar

相关问题