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

objective-c - 更改 NSTable/NSOutlineView 的默认字体大小

我不太明白如何更改(减小)我的 NSOutlineView 中文本的字体大小。默认文本大于大多数应用程序使用的字体大小。

在某些方面,您没有设置字体目录,而是从表格或大纲视图“上方”的某些东西继承了一些问题。

有什么地方可以巧妙地解释这一点吗?

0 投票
5 回答
7411 浏览

objective-c - 如何将上下文相关菜单添加到 NSOutlineView(即右键菜单)

您如何添加右键单击 NSOutlineView 中的一行的功能,以便您可以说删除对象或其他一些活动。(例如,当您右键单击 Apple Mail 应用程序中的文件夹时)

我想我已经完成了一半,我有一个 NSOutlineView 的子类,它允许我捕获右键单击并根据所选行而不是鼠标单击的行显示上下文菜单。

抱歉,如果答案很明显,我在网上或文档中找不到任何帮助。

感谢 Void 的回答,它引导我使用这个:

0 投票
4 回答
5333 浏览

objective-c - 让 NSOutlineView 行可编辑

这里有人知道如何使 NSOutlineView 中的单元格可编辑吗?我使用来自苹果的示例代码,我似乎无法让它工作。

我正在尝试对其进行设置,以便当您在 NSOutlineView 中的一个单元格上快速连续单击两次时,该单元格变为可编辑,以便用户可以更新单元格内的文本。(与它在 xcode 和邮件等中的工作方式相同)。

我徒劳地包含了这个控制器的大部分其余代码,希望有人能发现我做错了什么,这非常令人沮丧。我知道shouldEditTableColumn正在调用它,因为它在双击时返回 NSLog 消息。

0 投票
2 回答
461 浏览

cocoa - 有没有一种简单的方法可以在 Cocoa 的 NSCell 中组合文本和图标?

我正在尝试基于 NSOutlineView 创建一个非常简单的选择列表小部件。但是,我很难弄清楚如何在它旁边显示一个图标和一个标签,这确实是所有主流实现这种小部件(iTunes、邮件、Finder 等)的预期行为。 ..)。

到目前为止,我只是绑定了两个单独的单元格,但是当我扩展树时,图标单元格会变大,并且图标及其随附标签之间会出现间隙。我知道我可以通过扩展 NSCell 并提供一个自定义类来克服这个问题,但是由于我想要实现的实际上是标准的东西,我不能接受没有更简单的解决方案。

老实人

0 投票
2 回答
677 浏览

cocoa - 如何将 NSOutlineView 的最后一个树项保留在侧边栏的最底部?

我希望特殊项目的行为与 Things 应用程序中的行为相同。我的意思是侧边栏底部的日志垃圾箱项目:

日志和垃圾项目在最底部 http://tinyurl.com/lhctza

请建议在侧边栏树中实现相同功能的任何方法。

我觉得特殊的“间隔”树项目应该与outlineView:heightOfRowByItem:方法一起使用。

但是,我找不到如何计算所有可见项目的总高度(包括组之间的空间)。

0 投票
2 回答
806 浏览

cocoa - NSOutlineView -- reloadItem:reloadChildren: 让我的应用程序崩溃

我正在尝试使用NSoutlineViewreloadItemreloaditem:reloadchildren函数在大纲视图中重新加载特定项目,但它会使我的整个应用程序崩溃。请您告诉我一个解决方法,就像我也尝试折叠该项目并再次展开它,但它没有重新加载该项目及其子项。

现在我正在做的是:

  1. 我正在使用 for 循环手动保存大纲视图的状态,并在项目是否处于展开状态时保存项目。

  2. 调用 NSOutlineView 的reloadData函数

  3. 然后使用保存的状态,运行一个 for 循环来展开之前展开的所有项目。

但是这种方法有很多性能开销。这种方法还有其他解决方案吗?

有什么方法可以自动保存大纲视图的状态并重新加载并再次设置该状态?这些 autosaveExpandedItems 和 setautosaveExpandedItems 方法有什么作用?

谢谢

0 投票
1 回答
1135 浏览

objective-c - 在 NSOutlineView 中增加太紧的图标间距

我正在编写一个 Cocoa 应用程序,它在NSOutlineView中显示存档文件的内容。我在大纲列中为NSBrowserCell提供了自定义图标,但我无法完全正确地设置间距 - 文件夹图标总是显得太靠近显示三角形,如下所示。(FWIW、VersionsBetterZip都显示相似的数据,没有间距问题。)

NSOutlineView-icon-spacing http://img.skitch.com/20090918-tgfjh9x8dhgqxqnb2su8fby4ng.jpg

因为只有文件夹图标才会有这个问题,所以我真的只关心在那个上下文中修复间距。(注意:我已经缓存了图标以供重复使用,因此如果有必要,我可以处理文件夹图像,因为它只会发生一次。)我不确定是否可以在 NSBrowserCell 实例中进行调整,但我还没有找到任何可行的方法,不是因为缺乏尝试。


对于好奇的人,JarScan是一个方便的(免费)命令行工具,用于在 JAR 文件中定位 Java 类。

0 投票
1 回答
1821 浏览

objective-c - 使用 NSOutlineView 时的 EXC_BAD_ACCESS

我正在尝试获取一个大纲视图来显示一个目录,现在我已经编辑了 Apple 的示例以使其在我设置的任何目录中工作,除非在扩展任何节点时我从 NSOutlineView 类中获得“EXEC_BAD_ACCESS”。

这是头文件:

这是实现文件:

更新:用最新版本更新了代码

0 投票
2 回答
5049 浏览

cocoa - 如何将 NSTreeController、NSOutlineView 和 Core Data 与“不可见”的根项一起使用?

我有一个核心数据模型,它由一个特定实体的简单树组成,它有两个关系,parent并且children. 我有一个NSTreeController管理模型,NSOutlineView绑定到NSTreeController.

我的问题是我需要一个根对象,但这不应该显示在大纲视图中,只有它的子对象应该显示在大纲视图的顶层。NSTreeController如果我将Interface Builder 中的 fetch 谓词设置为parent == nil,则一切正常,除了根项在大纲视图中作为顶级项可见。

我的实体有一个属性 ,isRootItem仅适用于根项目。

我的模型如下所示:

大纲视图应如下所示:

轮廓视图图像
(来源:menumachine.com

我需要在大纲视图的顶层显示节点 2、3 和 4(节点 1 应该不可见),但它们的父节点仍然是“节点 1”。节点 1 的值为YESfor isRootItem,所有其他节点的值为NO

如果我将树控制器的 fetch 谓词设置为parent.isRootItem == 1,这将正确显示树,但是一旦我将新项目添加到顶层它就会失败,因为树控制器没有将“不可见”根项目分配为新项目。

有没有办法让NSTreeController/NSOutlineView组合在这种情况下工作?

0 投票
1 回答
608 浏览

objective-c - NSImage 泄漏?

所以我试图在我的应用程序中复制 SourceView 示例。我可以完美地生成源列表,很好。我还可以展开容器,一切都显示得很好。但是,当我在列表中选择一个项目时,应用程序崩溃并显示 EXC_BAD_ACCESS。

回溯

源列表单元

大纲视图委托