NSButtonCell与NSButton

| 我一直在阅读有关NSButtons和单元格的Apple文档,但我似乎真的无法理解两者之间的区别。更加复杂的是,它们似乎都像
setTitle:
这样的方法有很多重叠,因此我不确定应该使用哪种方法。 谁能解释基本区别是什么? 谢谢, 特佳     
已邀请:
您可以将控件视为单元格的代表或“代理”。1控件是
NSView
,在这种情况下,这意味着两件重要的事情。首先,它代表要绘制的窗口区域。其次,它接受用户交互。2 但是,控件本身并不会做很多事情。单元是完成所有工作的东西-例如,请注意,单元可以将自己吸引到给定的框架中。这是视图的职责,但是控件将其推迟到单元格,仅提供绘图区域。 同样,当用户单击控件时,控件会接收事件并弄清楚其含义,但是响应事件执行操作的工作会传递到单元格上。 如果查看各种控件/单元对的文档(
NSButton
NSButtonCell
是这样的一对),您会看到提到的“ cover \”方法。这意味着控件具有与其对应单元格名称相同的方法,这些方法只需调用该单元格的名称即可。这就是您提到的重复项的来源。当您要使用其中一种方法时,请在控件上调用它-作为该对的公开面孔,无论如何它很可能会简单地询问该单元格。 Apple提供的最佳交互描述是“控件和单元编程主题”指南中的“控件与单元如何交互”。 1从某种意义上说,演员有经纪人来采购演出。 2并非所有观点都严格如此;它实际上是
NSView
继承的
NSResponder
的功能。     
摘录自可可OS X版:《大书呆子牧场指南》   单元负责处理控件的实现细节。为了   大多数情况下,单元格的属性和方法被“覆盖”   相应控件中的属性和方法相同。对于   例如,当您更改标签上的标题时,标签的单元格是   完成工作,但是您与标签的stringValue进行交互   属性。      细胞在可可粉中历史悠久。他们原来是   解决性能问题的附加功能:   控制权交给了牢房,这可以做得更多   比控制有效。      Mac电脑功能更强大   与当时相比,细胞已成为一种负担。   苹果公司表示正在淘汰电池,但   您仍然会在文档大纲和较旧的代码中看到它们。”     
“ 3”是“ 7”的子类,用于实现按钮,开关和单选按钮的用户界面。它也可以用于视图的其他任何区域,这些区域设计为在单击时将消息发送到目标。
NSControl
NSButton
子类使用单个
NSButtonCell
。要创建开关或单选按钮组,请使用带有一组
NSButtonCell
NSMatrix
。     
NSButton Cell在绘图和行为方面有更多可定制的选项。可以从它们继承的类中更好地看出这些差异(NSButtonCell继承自ActionCell类,而NSButton继承自NSControl类。 更好地看一下文档: http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSButton_Class/Reference/Reference.html http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSButtonCell_Class/Reference/Reference.html 您应该根据希望按钮的绘制方式和行为进行选择。如果您想要一个简单的按钮,请使用NSButton。     

要回复问题请先登录注册