问题标签 [nstablecellview]
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.
macos - 如何使用具有动态创建列的表正确创建 NSTableCellView
我正在尝试使用 Swift 3 为 macOS 创建桌面应用程序。
我的窗口有两个基于视图的表,其中一个表显示具有有效负载大小的数据包列表。选择数据包时,第二个表显示有效负载字节。由于有效负载大小不同,第二个表具有以编程方式创建的列;选择的最大数据包大小确定最大列数。
如果我使用基于单元格的表格,我没有问题,但我更喜欢对两个表格都使用基于视图的表格。
列已创建
问题出现在viewFor
委托方法中,其中
返回nil
如果我NSTextField
直接返回 a 或NSTableCellView
使用 aNSTextField
作为子视图创建 a ,它将起作用:
这种方法需要更多的单元格样式,我可能应该子类化NSTableCellView
.
我的问题是为什么该make(withIdentifier:owner:)
方法不适用于动态创建的列?创建列时是否遗漏了什么?
有没有办法可以创建NSTableCellView
并使用该textField
属性?
macos - NSTableView,每行有两个自定义表格单元格视图(MacOS)
我有一个单列,基于视图的 NSTableView,我想在其中放置两个不同的自定义单元格视图,一个在每一行中与另一个交替,如下所示:
奇数行:OddRowNumberCellView
. 偶数行:EvenRowNumberCellView
.
Natasha 在她评价很高的答案UITableview 中有一个 iOS 解决方案,其中有多个使用 Swift 的自定义单元格,但它取决于属性检查器中的动态原型设置,这是 MacOS 不可用的功能。
请问有人知道如何在Mac上执行此操作吗?(我使用的是 macOS Sierra 10.12.4。)
autolayout - ios 10 自动布局单元格视图不可见
自动布局世界的新手,我似乎无法将表格相对于单元格中的父内容视图右对齐。左对齐有效,但是在较小的屏幕上预览和在 6s 上运行时,标签不可见/被切断。
根据this thread,解决方案是确保tableview正确固定到父视图控制器(0,0,0,0) - 但仍然没有修复我的标签。
任何帮助表示赞赏。
objective-c - 我们如何从 OS X 中的 NSTableView 中删除多余的行?
我需要从 NSTableView 和 NSOutlineView 中删除未使用的单元格行。在 UITableView 我们有 tablefooter 的属性。NSTableView 有什么吗?
请检查代码和对此的一些描述。
dataArr 是一个包含 SearchItem 类型对象的数组,它们只是数据的模态而已。dataArr 有 4 个对象意味着总共 4 行将出现在 NSOutline 视图中。
((SearchItems *)item).children 是 OutlineView 子项对应单个 SearchItems 的数据数组。每行有 2 个孩子,因此当您展开行时,将显示 2 个孩子。
macos - NSOutlineView - 获取给定项目的 NSTableCellView
我的基于视图的大纲视图为其行显示了一个自定义上下文菜单(右键单击菜单)。
菜单上的菜单项之一是“重命名...”,菜单项的representedObject
属性设置为大纲视图行表示的对象:
在操作方面,我想以编程方式使表格单元格中的文本字段可编辑。问题是,我不确定如何仅从表示的对象中获取对表格单元格的引用。
这是我的操作方法:
我可以获得表示对象(Int)的行:
...和行视图(NSTableRowView):
我可以获得列索引(Int)和列(NSTableColumn):
...并尝试获取单元格视图(NSTableCellView):
最后,我尝试使文本字段可编辑:
所有这些测试都通过(我设置了断点),但没有任何反应:文本字段无法编辑(与双击时不同)。
我究竟做错了什么?
编辑我意识到当我打电话时:
这基本上NSOutlineViewDelegate
是我的视图控制器正在实现的方法,所以不是给我屏幕上已经存在的单元格,而是按需创建一个新副本。有点像打电话
...而不是调用:
UITableView.cellForRowAt(_:) // 表格视图方法正确;如果 // 已经在屏幕上,则返回现有单元格,否则返回数据源(方法 // 上面)
因此,我应该查询大纲视图本身,而不是调用重新创建单元格视图的委托方法。但是,我能看到的唯一有意义的方法是:
...返回一个 NSTable行视图...
objective-c - NSTableView - 删除列中的行
有没有办法删除特定列中的一行NSTableView
?如果我使用以下代码:
所有索引为 0 的行都被删除(在所有列中),这不是我想要的。我只想删除第 2 列中的第 0 行。这可能吗?
谢谢你的时间,丹。