问题标签 [nscell]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
4317 浏览

objective-c - NSOutlineView 更改披露图像

我的大纲视图,我正在添加自定义单元格,要绘制自定义单元格,我指的是示例代码,出现在 Cocoa 文档中

http://www.martinkahr.com/2007/05/04/nscell-image-and-text-sample/

我想用我的自定义图像更改单元格的公开图像,我尝试了以下操作

但这也不起作用,有没有其他方法可以更改公开图像,以及如何在 willDisplayCell 中找出 Item 是展开还是折叠,以便我可以相应地设置图像,

这只是更改披露图像的地方吗?

0 投票
1 回答
5004 浏览

cocoa - NSCell 自定义亮点

我正在尝试子类化NSCell以绘制自定义背景突出显示。该文档似乎表明覆盖highlight:withFrame:inView:应该允许我这样做,但该方法永远不会被调用。

相反,我已经覆盖drawInteriorWithFrame:inView:了哪些工作正常 - 我可以在单元格中绘制我想要的内容。但是,问题是我必须自己绘制所有内容,失去了我正在扩展的 NSCell 类型的功能 - 例如 NSTextFieldCell 显示文本的能力:

自定义绘制的高亮单元格:

在此处输入图像描述

但是,我只想重新绘制背景(突出显示),并保留使用扩展单元格的主要功能的能力:

在此处输入图像描述

当然,我也可以自己绘制文本,但我希望有一种更简单的方法来做到这一点。

任何帮助深表感谢。

0 投票
1 回答
2588 浏览

objective-c - NSOutlineView 更改组行颜色

在我的 NSOutlineview 中,我使用的是从 NSTextFieldCell 子类化的自定义单元格,我需要为组行和普通行绘制不同的颜色,当它被选中时,

为此,我做了以下工作,

是的,我知道它的私有 API,但我找不到任何其他方式,这对普通行非常有效,但对组行没有影响,有没有办法改变组颜色,

亲切的问候罗汉

0 投票
0 回答
161 浏览

cocoa - NSCell 不会从 NSTableView 中删除

我有一个充满自定义 NSCells 的 NSTableView。大多数包含文本,但一个包含一个 NSButton。当我减少数据源中的对象数量时,调用-noteNumberOfRowsChangedand -reloadData,所有带有文本的 NSCell 都消失了,但带有按钮的那个保持在那里。

为了从我的表中删除最后一个 NSCell,我还需要做哪些额外的工作?

0 投票
2 回答
614 浏览

objective-c - NSCell 中具有多个 UI 元素的 NSTableView(如传输)

我将如何制作一个NSCell包含多个 UI 元素的元素并将其显示在一个NSTableView? 对于NSCells一个值,我可以实现tableView:objectValueForTableColumn:row:,但我不知道如何为NSCells多个值执行此操作。目前我有一个NSViewin anNSCollectionView并且所有元素都绑定到一个NSArrayController. 但我宁愿有一个NSTableView或类似的。

0 投票
1 回答
286 浏览

objective-c - NSCell 未正确显示

我在 NSTableView 中有一个自定义 NSCell,但它无法正确显示。表格视图中有正确数量的项目,但除了第一个之外,它们都是空的。第一个显示单元格,但当我单击 NSTableView 上的某个位置时,它的值会随机变化。我怀疑这与我的手机有关copyWithZone:。我的单元格没有任何 iVar,只是一个drawWithFrame:inView:绘制其 objectValue 的方法。在copyWithZone:我回来[[[MyCell allocWithZone: zone] init] autorelease]

我应该退回其他东西吗?

0 投票
1 回答
296 浏览

macos - 从自定义 NSCell 更新核心数据

我有一个自定义NSCell(实际上是子类化NSTextFieldCell),它既用于独立编辑器,也用于NSTableColumn(通过 绑定到核心数据NSArrayController)。当用户更改值时,我调用-[NSCell setObjectValue:]以更新值(它是NSNumber)。这在独立编辑器中有效,因为完成后我手动更新其上的绑定。

当单元格位于时,该步骤(更新绑定字段)丢失NSTableView- 更新的值在用户编辑(使用鼠标跟踪)时显示,但一旦结束,该值立即恢复为持久值。

绑定到的NSTableColumn-[NSArrayController arrangedObjects]。我是否缺少某种对“commitEditing”或“updateBinding”的调用?NSCell我在或的文档中找不到任何有用的功能NSTableView

0 投票
1 回答
377 浏览

cocoa - Cocoa 绑定和自定义 NSCell 属性

我对子类 NSCell(复选框单元)有疑问。我希望他们在复选标记旁边有一个标题和一个副标题(所以我为这些创建了 NSString 属性)。它们的值应通过 Bindings 设置(来自 IB 会很棒)但问题来了:

IB 只允许我设置单元格的“值”,在我的情况下是复选标记状态的 BOOL。

什么类必须绑定到提供数据的 NSArrayController?似乎细胞本身不能绑定到任何东西并做类似的事情

也不行。我必须在何时何地进行绑定?

最好的,斯特凡

0 投票
1 回答
470 浏览

objective-c - 如何将 NSColorWell 添加到 NSTableView?

是否可以将 an 包装NSColorWell为 anNSCell以便我可以将其添加到 an 中NSTableView?如果没有,是否有其他解决方案?

0 投票
1 回答
1102 浏览

objective-c - 子类化 NSCell - [self objectValue] with drawInteriorWithFrame:inView: 返回奇怪的结果

我的NSTableView主窗口 NIB 文件中有一个使用动态创建的数据源的文件 - 也就是说,字典数组是在需要时动态创建的 - 在我的一个类中。所以它不受 IB 中任何控制器的约束。

tableview 有 2 列具有子类的 dataCell 集。

<NSTableViewDataSource>文件中,numberOfRowsInTableView:设置为动态创建的数组的正确计数,并且 GDB 会在绘制表格时正确记录它。

现在问题来了。出于假设的原因,假设数据源的数组计数为1

在两个子类中NSCell,我都覆盖了drawInteriorWithFrame:inView:处理表格单元格内所有绘图(图像、文本、按钮等)的方法。每列包含一个字符串(第NSDictionary1 列)和(第 2 列)的对象引用。

基于数据源中 1 个对象的示例,如果drawInteriorWithFrame:inView:我要编写以下内容(在第 2 列中):

GDB 中的预期结果(无需单击表格或滚动等)应为以下 1 个实例:

如果我在表格中单击或滚动,那么它应该为表格视图中的每个操作返回相同的值。但是,在第一次加载时,我会得到这样的结果:

如果有 2 个结果,那么我得到 3 个日志项,其他时候 4 个。在大多数情况下,该方法被调用的次数比它应该调用的次数多 1 次。

第二个问题是最近才出现的,如果您注意到上面的对象 ID,您会发现它们是不同的。如果我向数据源添加 1 项,当我调用 时[self objectValue],如果重新绘制表,则对象 ID 应该是相同的,因为它是一个参考 - 即。该对象已经-alloc在上一个类中,我只是发送对象引用。

我希望这是有道理的,但我在最后一天一直在敲打我的头,试图看看我是否错误地在任何地方复制了任何东西并且找不到任何问题。如果您需要更多代码,请告诉我。我也试过谷歌,但只参考了这个:

http://forum.soft32.com/mac/NSPopUpButtonCell-view-refresh-ftopict46690.html

提前致谢。

下面讨论的附加输出。

来自 GDB 的输出

** 1 个文件,1 个 NSCell 集和子类 ** 这里请求保持不变 - (即不复制)

1个文件,2个NSCell的集合和子类

这里子类中的请求发生了变化——(即没有复制)