问题标签 [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 投票
2 回答
797 浏览

objective-c - 如何在 NSTableView 中显示图像?

我有一个用我的数据源填充的 NSTableView。

我的数据模型有一个图像的 URL。

我想在我的 NSTableView 的每个单元格中的一些文本旁边显示一个图像。基本上就像一个 twitter 客户端,左边是图片,右边是一些文字。

我不知道怎么做这个可可?我熟悉 Cocoa-Touch 中的过程(通过子类化 UITableViewCell)。

0 投票
1 回答
634 浏览

cocoa - 如何在 NSMatrix 的单元格中跟踪鼠标悬停?

我想在 NSMatrix 中跟踪 NSCell 的鼠标悬停事件。文件说我可以将 NSMatrix 模式设置为NSTrackModeMatrix,当鼠标在单元格范围内时,单元格将被发送消息trackMouse:inRect:ofView:untilMouseUp:,但是只有当我单击单元格时,此消息才会发送到单元格。我误解了文档?如果是这样,我可以用另一种方法来跟踪鼠标悬停事件吗?

谢谢

0 投票
7 回答
4528 浏览

objective-c - NSTableView 拖放不起作用

我正在尝试为我的 NSTableView 设置非常基本的拖放操作。表格视图只有一列(带有自定义单元格)。该列绑定到 NSArrayController,而数组控制器的内容数组绑定到我的控制器对象上的 NSArray。数据在表中显示良好。我将 table view 的dataSourcedelegateoutlets 连接到我的控制器对象,然后实现了这些方法:

我还在以下位置注册了拖动类型-awakeFromNib

问题是 -tableView:writeRowsWithIndexes:toPasteboard: 方法从未被调用过。我看过一堆例子,但我无法弄清楚我做错了什么。问题可能是我正在使用自定义单元格吗?我应该在单元子类中覆盖某些东西以启用此功能吗?

编辑:确认。将自定义单元格切换为常规 NSTextFieldCell 可以进行拖动。现在,如何使用自定义单元格进行拖放操作

0 投票
1 回答
1197 浏览

objective-c - 透明的 NSTableView

我想自定义我的NSTableView. 我的总体要求是这样的:

  • 每行将有一个图像和一些文本;图片和文字可能不同。
  • 某些单元格可能没有图像。
  • 行高取决于一些外部因素。
  • 单元格不应该绘制背景,它应该显示NSTableView背景。

到目前为止,我能够用一些文本绘制透明单元格。我用谷歌搜索发现我需要自定义每个单元格。现在我有这个问题:我应该保持两列还是一列可以,左侧有一张图片,旁边有文字?

我也明白我需要重写两种方法:

所以对于每个单元格,我需要绘制/构建单元格——有人可以指导我吗?我是否朝着正确的方向前进?我可以通过上述方法实现具有动态高度的透明背景吗?

0 投票
2 回答
635 浏览

objective-c - 将单个 NSCell 绑定到多个值

我已经在这个主题上杀死了一天,但仍然不知道如何以正确的方式完成。

NSOutlineView用来显示文件系统层次结构。对于第一列中的每一行,我需要显示复选框、关联的图标和文件或目录的名称。由于没有标准的方法来做到这一点,我已经NSTextFieldCell使用 SourceView 和 PhotoSearch 示例进行了子类化,value在 IB 中绑定到name我的树项类的属性NSTreeController。我正在使用drawWithFrame:inView:覆盖来绘制复选框和图像,将文本绘制转发到super. 我还使用trackMouse:inRect:ofView:untilMouseUp:覆盖来处理复选框交互。

一切都很好,直到我注意到一旦我在自定义单元格中按下鼠标按钮,单元格对象就会被复制,copyWithZone:然后这个临时对象会被发送一条trackMouse:inRect:ofView:untilMouseUp:消息,从而无法修改驻留在看法。

由于问题主题是关于绑定的,我认为这可能是答案,但我完全不明白我应该如何连接所有这些混乱以按预期运行。试过这个:

但根本没有成功。好像我没有得到它。

这可能是我采取的完全错误的方式吗?您能否提出更好的替代方案或任何链接以供进一步阅读?


UPD 1/21/11:我也试过这个:

但不断收到类似“[<_NSControllerTreeProxy 0x...> valueForUndefinedKey:]:此类与键状态的键值编码不兼容”之类的错误。和类似的。

0 投票
1 回答
740 浏览

cocoa - 来自 NSCell 的 NSColorPanel

我有一个带有以下代码的自定义 NSCell 以在单击时显示 NSColorPanel:

此代码显示一个颜色选择器,但是,当我单击一种颜色时,它会崩溃。如果如果删除 [panel setTarget:self] 行,那么它工作正常,虽然没有效果(因为我从来没有收到颜色值,因为没有目标)。

这是堆栈跟踪。错误是 EXC_BAD_ACCESS。

0 投票
3 回答
569 浏览

objective-c - 使用 NSCell 选择文本(内容)而不是单元格

我目前正在一个带有 NSOutlineView 的项目中工作......

当然,我使用 NSCell(s),我需要让选择单元格内的文本的能力......或者至少......阻止单元格的选择(和突出显示)......

我在 IB 上搜索了所有选项,但找不到合适的选项...

有没有办法以编程方式阻止选择/突出显示单元格,也不让用户选择单元格内容?

谢谢 =)

0 投票
0 回答
454 浏览

objective-c - hitTest 没有在 NSCell 子类中被调用

我正在NSCell为我的项目开发一个子类。

在某些情况下,这个子类NSButtonCell在它的视图上绘制了这个:

没问题。关于绘图,问题是响应点击按钮!

我正在尝试这样做:

和 :

- (BOOL)startTrackingAt:(NSPoint) inView:(NSView *)

- (BOOL)trackMouse:(NSEvent *) inRect:(NSRect) ofView:(NSView *) untilMouseUp:(BOOL)

- (BOOL)continueTracking:(NSPoint) at:(NSPoint) inView:(NSView *)

- (void)stopTracking:(NSPoint) at:(NSPoint) inView:(NSView *) mouseIsUp:(BOOL)

但是 hitTest 或任何其他人永远不会被调用......

+ (BOOL)prefersTrackingUntilMouseUp被调用,这对我没有多大帮助......

任何想法 ?^^

0 投票
1 回答
3383 浏览

objective-c - 自定义 NSTableView 单元格的最简单方法是什么?

我是一名 iOS 开发人员。我最近开始了我的Mac项目,但是我发现和UITableViewCell不同,它是UIView的子类,NSTableView的cell是NSCell,我什至不能在IB中创建它。我想知道是否有一些简单的方法可以创建像 NSTextFieldCell 这样的子类以将其放入 NSTableView。

任何帮助,将不胜感激!谢谢!

0 投票
1 回答
995 浏览

objective-c - NSOutlineView 控制高亮和缩进

在我的大纲视图中,我使用的是 CustomCell,它只是从 Cocoa ImageTextCell RefrenceCode 中获取代码并进行了一些修改,

是否可以更改单元格的突出显示颜色?

到目前为止,我已经完成了以下操作 - (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {

}

这是有效的,但发生了什么,我可以看到,hightlight 单元格颜色首先从系统默认颜色开始,然后,它将被 evenColor 覆盖,我觉得问题是 cellFrame.origin.x,它不是从 0 开始,

应用这段代码后输出如下

和我所期待的