问题标签 [nsbrowser]

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

cocoa - 从 NSBrowser 拖动并使用绑定?

我已经实现了一个与 NSOutlineView 共享 NSTreeController 的浏览器,因此我可以轻松地在它们之间切换并保持状态同步。实现对 NSOutlineView 的拖动支持很简单,但似乎 NSBrowser 在使用绑定时不支持拖动。有没有人能够在使用绑定的同时支持从 NSBrowser 拖动?

0 投票
1 回答
395 浏览

objective-c - 如何在 NSBrowser 中突出显示一行?

我尝试使用 突出显示行NSBrowserselectRowIndexesNSBrowser它没有突出显示行。在“NSTableView”中,可以使用突出显示行

是否有任何 api 可以突出显示中的行NSBrowser?我想突出显示没有在浏览器上单击鼠标的行,我有一些已知的索引我想在我的自定义方法中突出显示这些行。

0 投票
1 回答
196 浏览

objective-c - 防止可怕的 NSBrowserCell 工具提示

我正在NSBrowser使用以下代码设置矩阵单元的工具提示:

大多数情况下,这会产生出色的工具提示。

然而,当悬停某些单元格时,工具提示会扩大到一个怪诞的宽度,将原本令人愉快的体验变成一种既可怕又令人困惑的体验。下面的屏幕截图显示了这种可怕的行为。

宽负载

触发上图令人发指的工具提示的单元格的输出是:

是什么导致了这些看似随机的暴行——我是否遗漏了一些明显的东西?

0 投票
3 回答
1411 浏览

objective-c - 如何找到用户点击了 NSBrowser 中的任何行?

在我Browser选择默认行的实现中,我使用了以下代码。

有没有办法区分用户点击和第一次选择的行来选择默认行?

0 投票
1 回答
450 浏览

cocoa - NSBrowser 填充 NSPasteboard 但不会丢弃

我有一个 NSBroswer,其中包含一系列查找文本 blob 的条目。如果 blob 存在,则 - (BOOL)browser:canDragRowsWithIndexes:inColumn:withEvent:返回 YES。

这调用 - (BOOL)browser:writeRowsWithIndexes:inColumn:toPasteboard:

在这里,我执行以下操作:

现在出来的粘贴板的数据分析(带有retBOOL:是)是:

所以我的问题是,当我将它拖到 SimpleText 或 BBEdit 时,什么都没有。我没有看到目标文档的亮点。(注:我也有拖图例程,看到拖图了)

任何想法为什么我似乎正在填充粘贴板但它拒绝放入其他应用程序?

0 投票
1 回答
535 浏览

macos - 基于视图的 NSBrowser?

现在我们已经有了NSTableView并且NSOutlineView可以将常规NSView对象作为它们的单元格,那么NSBrowser呢?那就是我们可以使用常规NSView对象作为 NSBrowser 中的单元格吗?

0 投票
1 回答
380 浏览

cocoa - NSBrowser 重用单元格而不是创建新单元格

我正在尝试使用 创建 UI 元素NSBrowser,但由于某种原因,浏览器会创建我指定的自定义单元格类的单例实例,而不是为浏览器中的每个单元格创建新的单元格实例。特别是,这是委托实现

日志消息如下所示

正如消息所示,同一个单元格实例被一遍又一遍地使用!有没有办法强制NSBrowser创建新的单元格实例而不是重用同一个?

0 投票
0 回答
276 浏览

macos - 如何更改 NSBrowser 本地拖放的 draggingFormation

我已经实现了一个视图控制器,它可以将多个 NSBrowser 单元格中的项目本地拖放到同一个 NSBrowser 控件中的一个单元格上。几乎一切都按我的意愿工作,除了我想找到合适的位置将 draggingFormation 更改为 NSDraggingFormationList,但我找不到 NSDraggingInfo 对象来进行更改。

我有一个不同的视图控制器,它使用 NSOutlineView 并将上述更改放入outlineView:updateDraggingItemsForDrag:方法,做我想要的。我找到了关于如何为 NSOutlineView、NSTableView 和 NSCollectionView 执行此操作的参考资料,但没有找到 NSBrowser。有任何想法吗?

0 投票
5 回答
579 浏览

cocoa - 从 NSBrowser 中删除边框

正如标题所说,我实际上想从 NSBrowser 控件中删除边框。父母是 NSView 和 NSControl。NSBrowser 本身没有可用的方法,父控件也没有。这似乎完全没有记录。

至于删除边框的原因,因为它以编程方式停靠在另一个视图中,所以视图层次结构意味着已经有一个边框。

有任何想法吗?

0 投票
1 回答
1124 浏览

macos - 实现 NSBrowserDelegate 协议的问题

我可以让我的 NSBrowser 实例在第一列中显示正确的数据。但是,当我选择其中一个选项时,下一列只会显示同一组选项。我已经阅读了文档,查看了 Apple 的所有相关示例代码,以及我在互联网上可以找到的所有内容,但我根本无法找出实现所需方法的正确方法。我提供给浏览器的数据是一个字典数组。每个字典依次包含一个“子”键,它是另一个字典数组。这些字典有自己的“子”键,它们也是字典数组等。使用 JSON 进行描述(对象是字典,数组是数组),它看起来像这样:

所以第一列应该显示“大卫”和“玛丽”。如果选择“David”,则下一列应显示“Sarah”和“Kevin”,依此类推。

我当前的实现依赖于我创建的自定义方法,该方法应该将浏览器的索引路径从提供的数据转换为相应的 NSArray 级别。这个方法看起来像:

我对所需 NSBrowserDelegate 协议方法的实现如下所示:

NSBrowser 的第一列填充了正确的名称。但是,一旦我做出选择,程序就会因错误而崩溃-[__NSArrayM objectAtIndex:]: index 4 beyond bounds [0 .. 0]。进行一些调试后,它崩溃的代码行是objectAtIndex:我自定义的调用getSelectionInBrowser:

这并不完全让我感到惊讶,因为即使在崩溃之前,我就认为我做错了,因为我依靠该自定义方法来检索当前选择。我想这项工作应该在委托方法本身内完成,并且当正确实施时,当前选择应该可以item在许多这些方法中提供的变量中访问。但是,我无法让它发挥作用。该item变量似乎总是只是根数据对象,而不是反映最“深入”的选择。

那么我该如何纠正我的实现呢?