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

objective-c - NSOutlineView 更改披露图像

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

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

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

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

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

0 投票
1 回答
2588 浏览

objective-c - NSOutlineView 更改组行颜色

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

为此,我做了以下工作,

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

亲切的问候罗汉

0 投票
1 回答
1939 浏览

cocoa - 自动选择、聚焦和突出显示一个新的 NSOutlineView 行

这可能只是缺乏经验,NSOutlineView但我看不到这样做的方法。我有一个NSOutlineView(通过出色的PXSourceList实现)带有一个添加按钮,该按钮在我正确保存/写入/插入/删除行方面完全可用。我不使用 a NSTreeController,也不使用绑定。我使用以下代码添加实体:

当按下添加按钮时,会插入一个新行,如下所示:

在此处输入图像描述

如果我点击离开,然后选择该行并按下enter以编辑它,它现在看起来像这样: 在此处输入图像描述

我的问题是:如何以编程方式第一次获得相同的状态(焦点、选定、突出显示),以使用户体验更好?

0 投票
3 回答
978 浏览

objective-c - 无法识别的选择器发送到类

使用我在其他地方找到的一个示例,该示例使用 6 个文件(一个委托 h/m、一个父 h/m 和一个子 h/m - 3 个类)将两个数组组合成一个大纲视图,我对项目进行了一些修改并将它们组合起来分为一个标题和一个正文(以避免额外的文件,因为预计项目会变得更大。我不知道这是否允许?)。该项目正在成功构建,但是当它崩溃并且无法弄清楚在 initWithTitle 中解决什么来纠正它时,我收到了以下错误。我想这与我如何组合文件有关。它们是文字复制并粘贴到一个文件中,没有遗漏任何内容,并且不同的实现和接口也不同。你可以从评论中看到每一个的截断。

崩溃错误

clientProjViewController.h

clientProjViewController.m

堆栈跟踪

0 投票
2 回答
1538 浏览

xcode - 为什么 NSManagedObjectContext = nil 在第一次尝试获取它之后?

我有一个基于父子关系或两个核心数据实体NSOutlineView的自定义。NSOutlineViewDataSource

我还没有找到一种直接的方法将这些绑定到视图,所以现在我正在弄清楚如何NSOutlineView在我将新对象插入任何一个实体及其各自的NSArrayControllers.

NSOutlineView填充awakeFromNib确定:

每次向任一实体添加对象时,我都尝试调用相同的方法,认为它会NSOutlineView再次从头开始填充。相反,它只是给出一个错误:

clientsMoc的日志显示,每次我调用它之后它都等于 nil awakefromnib(它适用于此)。我在这个网站上看到过一些关于此的提及,但引用selfNSApp 代表还没有为我工作。我不知道该采取什么方向?我需要返回一个不为零的 MOC。

我的 appdelegate 类是为核心数据应用程序设置的标准类。

提前致谢!

0 投票
2 回答
783 浏览

objective-c - 为什么我的 NSOutlineView 数据源为零?

这是我上一个问题的后续问题,与为什么我的managedObjectContext返回为零有关。我认为问题的方向会被埋在旧问题中。

我现在让我的mangedObjectContext不返回 nil,并且在执行[outlineView reloadData]时,我的 outlineView 什么也没有发生。我尝试有选择地删除旨在更新大纲视图的部分代码,以查看是否有任何变化,答案是否定的。从那以后,我发现(在我最初写了这个问题之后)我的 dataSource 关联在某个阶段正在消失。

笔记:

  • 下面包含的代码在数据源类的 awakeFromNib 上运行一次,并且运行良好。
  • 我的问题出现在任何其他时间调用它。我没有调试错误,但我的 outlineView 保持不变。
  • 我将其缩小到在 NSLog 上运行[outlineView dataSource]。当从中调用该方法时,awakeFromNib它会将 dataSource 作为我的 dataSourceClass 正确返回。每隔一次,它将 dataSource 返回为nil
  • dataSourceClass 绑定到InterfaceBuilder中的 outlineView 。
  • 我对代码数组中的对象更新所做的所有其他 NSLog 检查都按预期返回,并且更新正确。事实上,我检查了最终的projectsArrayclientsArray,它们包含在试图在 outlineView 中创建节点之前引入的所有新对象。
  • 我正在使用标准的 xcode 生成的核心数据应用程序委托代码。
  • 我没有使用NSTreeController和使用我自己的NSOutlineViewDataSource. 如何根据两个核心数据实体的父/子关系填充大纲视图是不可能的(或没有记录)。
  • 我还将NSOutlineViewDataSource在下面包含我的代码。

更新:

更新 1: 嗯...就在我打电话之前,[outlineView reloadData]我尝试了一个NSLogfor[outlineView dataSource]并且它返回为nil。我最初通过interfaceBuilder中的绑定将dataSource与 outlineView相关联。我现在假设这是我的问题。为什么我的数据源会被释放?如果我不能阻止它被释放,我该如何取回它?

代码:

刷新OutLineView:

大纲视图数据源:

0 投票
2 回答
1247 浏览

cocoa - 带有文本环绕单元格的 NSOutlineView:heigthOfRow

我正在尝试NSOutlineView使用多行单元格来实现。

根据此站点和其他站点的建议,我在视图的委托中提出了以下代码。

大纲表列中的单元格设置为换行。

然而,我得到了一个奇怪的图形行为——文本行重叠,如http://screencast.com/t/ewJUwRmlGZqh所示。似乎单元格的大小正确,但没有向下推底层单元格。

有人可以帮助我吗?

0 投票
2 回答
272 浏览

objective-c - NSOutlineView 元素仍然无可救药地不可拖动

我有一个带有 NSOutlineView(仅支持单选)的程序,我希望能够从中拖动元素。这些元素应该以文本或文件的形式接收:例如,将项目放在 TextEdit 窗口上应该会放置文本,但将项目放在 Finder 上应该会创建一个文件。我不希望任何东西被丢弃在我的大纲视图上,即使它来自它本身。这似乎很容易,但由于某种原因,我无法让它工作。

我检查了 Apple 的 NSOutlineView 拖放示例,我开始实现以下方法(加上一些绝对不相关的方法):

但是,当我尝试从大纲视图中拖动一个项目时,什么也没有发生。相反,它只是更改光标后的选择。

我在最后两个方法中设置了断点,它们永远不会被调用,所以它们的实现不是当前的问题。

我必须在这里遗漏一些非常明显的东西。

此外,这(还)不是问题,但我应该如何为我承诺的文件提供内容?

0 投票
2 回答
1063 浏览

cocoa - 带有透明字段编辑器的 NSOutlineView

我正在使用位于 HUD 面板上的 NSOutlineView。我对其进行了配置,使其不绘制背景。一切看起来都很好,直到我双击编辑一个单元格。字段编辑器绘制其背景和焦点环,这完全破坏了整个用户体验。

这就是我在 NSTextFieldCell 的子类中所做的:

如果我使用 setDrawsBackground:NO 它会被完全忽略,我会得到一个白色的背景。我的解决方案远非好,因为我无法触摸颜色的 alpha 分量(如果我这样做,字段编辑器将再次使用另一种颜色作为背景),但至少我没有得到白色背景。

我想知道这个问题是否有实际的解决方案。我必须提供自己的字段编辑器吗?这值得么?

我想要的只是一个没有背景和焦点环的字段编辑器,只是光标闪烁。

谢谢!

0 投票
1 回答
1236 浏览

objective-c - Cocoa WebView 拖放


在我的应用程序中,我有一个 NSOutlineView,其中包含一些文件列表和一个 WebView,
用户允许将任何项目从大纲视图拖到 WebView,然后,我想处理数据库事务,

在大纲视图中,我实现了以下方法,

在 WebView 方面,我实现了以下方法,

现在,当我将一个元素从大纲视图拖动到 WebView 时,我可以看到,大纲视图的 writeItem 被调用,
而在 Webview 中,DragEnter 被从哪里调用,我没有返回拖动操作 NONE,而是返回 NSDragoperationEvery,

问题是,我没有得到方法 prepareForDragOperation 和 PerformDragOperation,

谁能帮助我,
亲切的问候
罗汉