问题标签 [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.
cocoa - 从 NSBrowser 拖动并使用绑定?
我已经实现了一个与 NSOutlineView 共享 NSTreeController 的浏览器,因此我可以轻松地在它们之间切换并保持状态同步。实现对 NSOutlineView 的拖动支持很简单,但似乎 NSBrowser 在使用绑定时不支持拖动。有没有人能够在使用绑定的同时支持从 NSBrowser 拖动?
objective-c - 如何在 NSBrowser 中突出显示一行?
我尝试使用 突出显示行NSBrowser
,selectRowIndexes
但NSBrowser
它没有突出显示行。在“NSTableView”中,可以使用突出显示行
是否有任何 api 可以突出显示中的行NSBrowser
?我想突出显示没有在浏览器上单击鼠标的行,我有一些已知的索引我想在我的自定义方法中突出显示这些行。
objective-c - 防止可怕的 NSBrowserCell 工具提示
我正在NSBrowser
使用以下代码设置矩阵单元的工具提示:
大多数情况下,这会产生出色的工具提示。
然而,当悬停某些单元格时,工具提示会扩大到一个怪诞的宽度,将原本令人愉快的体验变成一种既可怕又令人困惑的体验。下面的屏幕截图显示了这种可怕的行为。
触发上图令人发指的工具提示的单元格的输出是:
是什么导致了这些看似随机的暴行——我是否遗漏了一些明显的东西?
objective-c - 如何找到用户点击了 NSBrowser 中的任何行?
在我Browser
选择默认行的实现中,我使用了以下代码。
有没有办法区分用户点击和第一次选择的行来选择默认行?
cocoa - NSBrowser 填充 NSPasteboard 但不会丢弃
我有一个 NSBroswer,其中包含一系列查找文本 blob 的条目。如果 blob 存在,则
- (BOOL)browser:canDragRowsWithIndexes:inColumn:withEvent:
返回 YES。
这调用
- (BOOL)browser:writeRowsWithIndexes:inColumn:toPasteboard:
在这里,我执行以下操作:
现在出来的粘贴板的数据分析(带有retBOOL:是)是:
所以我的问题是,当我将它拖到 SimpleText 或 BBEdit 时,什么都没有。我没有看到目标文档的亮点。(注:我也有拖图例程,看到拖图了)
任何想法为什么我似乎正在填充粘贴板但它拒绝放入其他应用程序?
macos - 基于视图的 NSBrowser?
现在我们已经有了NSTableView
并且NSOutlineView
可以将常规NSView
对象作为它们的单元格,那么NSBrowser
呢?那就是我们可以使用常规NSView
对象作为 NSBrowser 中的单元格吗?
cocoa - NSBrowser 重用单元格而不是创建新单元格
我正在尝试使用 创建 UI 元素NSBrowser
,但由于某种原因,浏览器会创建我指定的自定义单元格类的单例实例,而不是为浏览器中的每个单元格创建新的单元格实例。特别是,这是委托实现
日志消息如下所示
正如消息所示,同一个单元格实例被一遍又一遍地使用!有没有办法强制NSBrowser
创建新的单元格实例而不是重用同一个?
macos - 如何更改 NSBrowser 本地拖放的 draggingFormation
我已经实现了一个视图控制器,它可以将多个 NSBrowser 单元格中的项目本地拖放到同一个 NSBrowser 控件中的一个单元格上。几乎一切都按我的意愿工作,除了我想找到合适的位置将 draggingFormation 更改为 NSDraggingFormationList,但我找不到 NSDraggingInfo 对象来进行更改。
我有一个不同的视图控制器,它使用 NSOutlineView 并将上述更改放入outlineView:updateDraggingItemsForDrag:方法,做我想要的。我找到了关于如何为 NSOutlineView、NSTableView 和 NSCollectionView 执行此操作的参考资料,但没有找到 NSBrowser。有任何想法吗?
cocoa - 从 NSBrowser 中删除边框
正如标题所说,我实际上想从 NSBrowser 控件中删除边框。父母是 NSView 和 NSControl。NSBrowser 本身没有可用的方法,父控件也没有。这似乎完全没有记录。
至于删除边框的原因,因为它以编程方式停靠在另一个视图中,所以视图层次结构意味着已经有一个边框。
有任何想法吗?
macos - 实现 NSBrowserDelegate 协议的问题
我可以让我的 NSBrowser 实例在第一列中显示正确的数据。但是,当我选择其中一个选项时,下一列只会显示同一组选项。我已经阅读了文档,查看了 Apple 的所有相关示例代码,以及我在互联网上可以找到的所有内容,但我根本无法找出实现所需方法的正确方法。我提供给浏览器的数据是一个字典数组。每个字典依次包含一个“子”键,它是另一个字典数组。这些字典有自己的“子”键,它们也是字典数组等。使用 JSON 进行描述(对象是字典,数组是数组),它看起来像这样:
所以第一列应该显示“大卫”和“玛丽”。如果选择“David”,则下一列应显示“Sarah”和“Kevin”,依此类推。
我当前的实现依赖于我创建的自定义方法,该方法应该将浏览器的索引路径从提供的数据转换为相应的 NSArray 级别。这个方法看起来像:
我对所需 NSBrowserDelegate 协议方法的实现如下所示:
NSBrowser 的第一列填充了正确的名称。但是,一旦我做出选择,程序就会因错误而崩溃-[__NSArrayM objectAtIndex:]: index 4 beyond bounds [0 .. 0]
。进行一些调试后,它崩溃的代码行是objectAtIndex:
我自定义的调用getSelectionInBrowser:
。
这并不完全让我感到惊讶,因为即使在崩溃之前,我就认为我做错了,因为我依靠该自定义方法来检索当前选择。我想这项工作应该在委托方法本身内完成,并且当正确实施时,当前选择应该可以item
在许多这些方法中提供的变量中访问。但是,我无法让它发挥作用。该item
变量似乎总是只是根数据对象,而不是反映最“深入”的选择。
那么我该如何纠正我的实现呢?