- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在阅读有关 NSButtons 和 cells 的 Apple 文档,但我似乎真的无法理解两者之间的区别。更复杂的是,它们似乎都有大量重叠的方法,例如 setTitle:
等,而且我不确定应该使用哪些方法。
谁能解释一下基本区别是什么?
谢谢,
泰贾
最佳答案
您可以将控件视为单元格的代表或“代理”。1 该控件是一个 NSView
,在这些情况下这意味着两件重要的事情。首先,它代表要在其中绘制的窗口区域。其次,它接受用户交互。2
不过,该控件本身并没有做太多事情。细胞是完成所有工作的东西——例如,请注意,细胞可以将自己绘制到给定的框架中。这是 View 的责任,但控件将其推迟到单元格,只是提供一个用于绘图的区域。
同样,当用户单击控件时,控件会接收事件并弄清楚其含义,但响应事件而执行操作的工作将传递给单元格。
如果您查看各种控件/单元对的文档(NSButton
和 NSButtonCell
就是这样的一对),您会看到提到“覆盖”方法。这意味着该控件具有与其对应单元格相同名称的方法,这些方法只是调用该单元格的方法。这就是你提到的重复的根源。当您想使用其中一种方法时,请在控件上调用它 - 作为该对的公共(public)面孔,它很可能只是简单地询问单元格。
Apple 提供的最佳交互描述是 "How Controls and Cells Interact"在控制和单元编程主题指南中。
<小时/>1从 Actor 有经纪人来获得演出的意义上来说。
2并非所有 View 都严格如此;它实际上是 NSResponder
的一个功能,NSView
继承自该功能。
关于cocoa - NSButtonCell 与 NSButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6112861/
我对 NSButtonCell 类进行了子类化,以使按钮具有不同的外观。我的绘图代码工作正常。它是一个充满 CGGradients 的圆形按钮,看起来像 iTunes 播放控件。它们并不完全相同,但对
我想为我的应用程序创建一个自定义开关,其中我为可能的状态(打开、关闭、鼠标按下)提供三个图像。整个外观包含在图像中,因此我不希望 Cocoa 在鼠标按下期间自行突出显示(变暗)按钮。 目前,我已经创建
我正在尝试创建一个使用凹进式 NSButtonCell 对象的自定义范围栏。但是,当鼠标悬停时,我无法绘制边框。我可以通过创建跟踪区域并在鼠标位于内部时将 showBorderOnlyWhileMou
我有一个带有复选框样式单元格的表格,但我不知道如何让这些按钮显示它们应该显示的标题。数据源应该是字符串数组吗?字典数组(字符串/ bool 值)? NSButtonCell 数组?这些似乎都不起作用=
我有 NSTableView 对象,它由带有 NSButtonCell 单元格的一列组成。我还有一个实现 NSTableViewDataSource 协议(protocol)的类。设置单元格值的方法:
我有 NSTableView ,我在上面动态地为每一行创建一个按钮。 NSButtonCell *cell = [[NSButtonCell alloc] init] ; [cell
我在 NSTableView 中使用多个 NSButtonCell 对象。它们是简单的方形按钮,上面有自定义图像。 这些按钮在未突出显示时正确绘制:所有可见的都是图像,按钮矩形的其余部分是透明的。但是
我一直在阅读有关 NSButtons 和 cells 的 Apple 文档,但我似乎真的无法理解两者之间的区别。更复杂的是,它们似乎都有大量重叠的方法,例如 setTitle: 等,而且我不确定应该使
出于某种原因,我的 TableView 的 NSButtonCell 将错误的对象作为参数传递。单击后,我试图读取 NSButtonCell 的标签。 这是我的代码的简化版本: - (int)numb
下面代码中的 NSButtonCell 工作正常,但单击时不会显示复选图标。有什么想法吗? - (NSCell *)outlineView:(NSOutlineView *)outlineView
我想让一个按钮出现在 TableView 中作为最后一行的第一个元素而不是普通数据,所以我创建了 NSTableView 的子类并覆盖了 preparedCellAtColumn:row: 方法以在最
我有一个 NSMatrix,其中有几个 NSButton,它们没有文本,只有图像。其中一张图像是从互联网下载的,我希望在我的 OS X 应用程序中将其变成圆角。 我找到了一个几乎就是我正在寻找的答案:
在 Interface Builder 中,我已将 NSTableView 实例的一列的 dataCell 设置为 NSButtonCell。这按预期工作,但是,尝试使用"template"图像在单击
我正在尝试弄清楚如何在 Cocoa/OSX 中自定义绘制按钮。由于我的 View 是自定义绘制的,因此我不会使用 IB,而是希望用代码来完成这一切。我创建了 NSButtonCell 的子类和 NSB
我有一个 NSTableView,其中一列中包含一个 NSButtonCell。我可以设置在 Interface Builder 中单击按钮时调用的操作,但我无法找到确定按钮存在于表中的哪一行。有什么
在我的 cocoa 应用程序中,我需要一个用于 NSTableView 的自定义 NSCell。这个 NSCell 子类包含一个自定义 NSButtonCell 用于处理点击(以及两个或三个用于文本内
我实现了一个带有图像的 NSButton。 当用户悬停它时,图像会变成其他东西,然后再变回来。 正常状态: 悬停时: 我为 NSButtonCell 使用的代码是: 接口(interface): #i
如何设置 NSButtonCell 的标签(标题)文本的颜色,即表格 View 的列单元格?在我的例子中,它是一个复选框按钮单元格。 (是否可以使用IB?) 最佳答案 试试这个,我认为它是完美的。 N
我有一个派生自 NSButtonCell 的类,我在其中绘制边框: override func drawBezel(withFrame frame: NSRect, in controlView: N
我目前正在开发自定义主题的 NSButton。我发现的每个教程或指南都需要子类化 NSButtonCell,甚至是 the guide from Apple . 所有这些似乎都过时了,因为 NSCon
我是一名优秀的程序员,十分优秀!