问题标签 [nsoutlineview]

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 回答
1356 浏览

objective-c - 子/父元素的 NSOutlineView 问题

我正在实施 NSOutlineView 并实施了以下方法,

并实现了以下委托方法

其他一些方法

并获取数据

我正在关注一些博客、教程,我面临的问题是作为标准文档,它应该在 numberOfChildrenOfItem 中针对我们需要计算并发送该项目的子项编号的每个元素命中,但我面临的问题是仅使用一次上述功能,并且该项目也为零,即它不适用于其他元素,我是否缺少任何需要委托的方法

我覆盖的其他方法如下,

请告诉我,我缺少哪种方法

0 投票
1 回答
720 浏览

objective-c - NSOutlineView indentation Problem

For the custom requirement, i need to handle displaying of Cell, i.e. In short in my application i subclass NSCell to ImageTextCell (standard form Apple ) and using the same to display the Cell,

When it comes to indentation, i could see, all the element having same indentation, i.e. in my outline view i have two group and each group having more then two child element + three child element (i.e. Non Group Item ) on the top level, But the strange thing is all the element are displaying at the same level, do i need to set anywhere indentation level and should take care of displaying text and image as per indentation level ?

0 投票
2 回答
1963 浏览

objective-c - NSOutlineView 拖放

在我的应用程序中,NSOutlineView 使用如下, 1 - 使用 CustomOutlineView 因为我想控制 NSOutlineView 背景,

2 -- 使用CustomeCell,因为我需要自定义Cell

头文件:MyListView.h

而且我应该能够在大纲视图中拖放,因为我已经完成了拖放操作,

并支持拖放实现以下方法

但是当我尝试拖动 NSOutlineView 行时仍然没有发生任何事情,即使我尝试通过 NSLog 进行调试,但我无法从上面的函数中看到任何日志,我是否错过了任何重要的方法?支持拖放

0 投票
1 回答
736 浏览

objective-c - NSOutline 视图拖放问题

亲爱的大家,自从过去 2-3 天以来,我一直在与 NSOutline View 进行斗争,以便在表格中执行拖放操作,但无法理解我做错了什么,这是我到目前为止所做的,

要求,1 - 我想在我的视图中有一个透明或带有一些背景图像的 NSoutlineview,为此,我需要覆盖 NSOutlineView 的 drawRect 方法,这就是我所做的

在头文件中

在源文件中,我只是覆盖 drawRect 和其他一些东西来绘制背景图像或使其透明,这工作正常,

现在在我看来,我已经像这样声明了 NSOutlineView 对象,

/* * 我的自定义视图将能够绘制渐变和其他效果
*/

在源文件中,实现了以下方法,该方法将从 initWIthFrame 中调用

与拖放相关的其他重要方法实现如下

我检查了苹果 DragnDrop 示例代码,但无法理解我做错了什么,我相信,有些问题

[pOutlineView setDelegate:self]

功能,但如何解决,我不知道,我最近从 MyTableView 升级到 MyOutlineView,最近我能够在自定义表视图上执行 Drag-nDrop,其余的东西工作正常,比如 DataSource 等......

在此先感谢 亲切的问候 Rohan

0 投票
2 回答
736 浏览

cocoa - 关于 NSOutlineView 和 WriteItem | 拖放问题

要处理 Drag-n-Drop,请执行以下操作,

WriteItem 方法如下,

现在我期待控制将来到 AcceptDrop 方法,但断点没有打到那里,并且在 Log/gdb 中得到以下日志

并且控制没有来acceptDrop方法,

当我启用“异常停止”时,以下是它停止时的调用堆栈,

让我再更新一件事,在我的大纲视图中,我有自定义单元格,它只是我正在使用的 Mac ImageTextCell 接口文件。

谁能指导我,我做错了什么

亲切的问候罗汉

0 投票
1 回答
995 浏览

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

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

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

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

}

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

应用这段代码后输出如下

和我所期待的

0 投票
1 回答
865 浏览

objective-c - 使用源列表样式将自定义子视图添加到 NSOutlineView

我想在NSOutlineViewNSTableViewSelectionHighlightStyleSourceList设置的内容上方添加一些控件,使其看起来像 Finder/iTunes/iPhoto 类源列表。因此,我要添加的控件应放置在整个源列表之上,但与NSScrollView大纲视图相同。它们后面的颜色也应该是源lis的颜色(这是特殊的,因为当窗口失去焦点时它会从浅蓝色变为灰色)。

我已经尝试NSOutlineView在其父视图中以编程方式向下移动(它们是 a NSClipView,然后是 a NSScrollView),但是更改NSOutlineViews 框架不起作用(框架根本没有改变)。

干杯

法师先生

0 投票
2 回答
204 浏览

core-data - 在同一个 NSOutlineView 中显示不同的 NSManagedObject 实体

基本上我有三个不同的核心数据实体(A, B, C)并A包含一组Bs 和B一组Cs。然而,这三个实体彼此完全不同,它们没有共同的方法来访问彼此的孩子或要在视图中显示的值。

我试图在 NSOutlineView 中显示这三个实体。可能还有其他解决方案,但我想出了两个不同的解决方案:

  1. 实现 NSOutlineViewDataSource 协议并以不同方式处理每个实体。

  2. 将类与类别合并并添加通用(瞬态)方法/属性以供 NSOutlineView 使用。这些方法/属性从模型实体的属性中获取它们的实际值。

我选择了第二个选项,并为子项和显示值添加了 getter。但是,这样一来,Key-Value Observing 不再起作用,模型中的更改也不会反映到视图中。我明白为什么,但我不确定如何以正确的方式解决这个问题。我正在考虑某种方式来通知实际模型值的更改并将它们转发到视图。

是否有任何简单的方法可以转发这些通知,或者我应该考虑其他替代方法吗?

简而言之,我需要在 NSOutlineView 中显示不同类型的实体,并且我不想弄乱模型。

0 投票
1 回答
1471 浏览

cocoa - NSOutlineView 行索引在扩展项目时发生变化

假设我有一个 NSTableView(例如,a)和一个 NSOutlineView(例如,b)。

a我试图获取所有选定项目的父项目的数据源中b。在行号中。我想要第一个被选中的项目,rowIndex并且想将此字符串连接到该项目的父项的名称。例如:arowIndexb a

  • 1 和 1.1
  • 2

并且b

  • 1
    • 1.1(已选)
  • 2(已选择)
  • 3

这是- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndexa

问题是当我展开一个项目时,[outlineView parentForItem:[outlineView itemAtRow:index]]总是返回最后一个展开的项目。

I am trying to have a list of selected items and their parents. When I expand an item, all items change their parent to last expanded item.

Am I doing something wrong?

Thank you in advance.

0 投票
0 回答
363 浏览

cocoa - Cocoa - 动画重新排序 NSOutlineView

我将如何NSOutlineView在单击按钮时动画重新排序?高级别的分步说明将不胜感激。谢谢!