问题标签 [nstablecolumn]
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.
swift - 在 Swift 中使用 Bindings 以编程方式创建基于视图的 NSTableView
我正在阅读 Swift 中的 Cocoa 书籍,但我被困在关于 Bindings 的一章中。这本书使用了 nib 文件,但我想以编程方式完成所有事情(因为我加入了一个不使用 nib 的团队)。该项目是创建一个具有 2 列的基于视图的表,并且表的内容绑定到数组控制器的排列对象。数组控制器的内容绑定到 Employee 对象数组(Employee 有 2 个属性,即姓名和薪水)。
我能够以编程方式创建表格,如下所示(一个滚动视图、一个表格视图、2 个表格列):
如您所见,我不知道该表是基于单元格还是基于视图。我怎么知道我的表是基于什么的?由于这一章是关于绑定的,所以没有使用委托或数据源方法,我也想这样做。
下一个问题:就像我说的,这本书使用了NIB,并且可以访问它下面的NSTableView、NSTableCellView 和NSTextField。首先,NSTableView 的内容被绑定到数组控制器的排列对象上。因为我自己在代码中创建了 tableView 对象,所以我能够以编程方式完成这部分。然后书将 NSTextField 的值绑定到 NSTableCellView 的 objectValue.name(名称是 Employee 对象的属性之一)。由于我没有在我的代码中创建这些 NSTableCellView 和 NSTextField 对象,我该如何做这部分?有没有办法访问它们(假设我的表甚至是基于视图的)?
nstablecolumn - 与 NSTableView 自动保存功能一起使用的列标识符必须符合 NSCoding 协议:(null)
场景:
我将一个 NSTableColumn 传递到一个函数中,我从中切换它的隐藏标志:
如何使列标识符符合 NSCoding?
或者......这是一个错误?
cocoa - 如何在 Cocoa NSTableView 中添加列?
我想在 NSTableView 中显示数据。列数未指定(可能是从 1 到 ?? 取决于数据),所以我不能使用 Interface Builder。
因此,我将(使用 IB)我的表初始化为 1 列,然后根据需要添加新列(然后删除不再需要的第 0 列)。对于每个添加的列,我提供一个唯一标识符。到目前为止,一切都很好。
我实现了tableView(-:viewForTableColumn:row)函数,如下所示,但是makeViewWithIdentifier返回nil。怎么了 ?
如果我检测到nil返回,我会创建一个具有正确标识符的NSTableCellView实例。但数据未在表中显示。有什么问题?
代码如下(删除了不必要的行):
macos - NSWindow 调整大小时调整表列大小
我正在开发一个使用 NSTableView 的 Cocoa 应用程序。
现在,我希望在用户调整窗口大小或最大化窗口时,通过从角落拖动应用程序或单击缩放按钮,自动调整表格视图中列的宽度。
任何帮助将不胜感激。
swift - 如何从 NSTableView 中选择列和行?
我正在编写一个基于 NSTableView 的视图。我尝试使用:
let selectedRowNumber = tableViewMesos.selectedRow
并
let selectedColumnNumber = tableViewMesos.selectedColumn
识别要保存到数组中的单元格视图中的文本字段:
但是这里发生了一个问题,因为 的返回值为selectedColumnNumber
-1 ,这是从任何列中选择的任何行的未选择列的值。但是selectedRowNumber
正确地返回了行的索引。
因此,当完成单元格中文本字段的编辑时,程序会崩溃。因为 selectedColumnNumber 在数组的限制之外是 -1。请参阅下面的代码以确定发生这种情况的确切位置。
你可以帮帮我吗?我在这方面浪费了太多时间。我是 OSX 编程的新手,希望你能帮助我。
这是完成的代码:
}
cocoa - Unable to change NSTableHeaderCell font on El Capitan
I'm developing a Cocoa App (OSX) and, in my tableview, I want to change the font of all of my columns.
I'm using the cell-based version.
Strangely, It is not possible to do it by using Interface Builder (IB). Each time, it forces me to use the font "System Small" !
But, if I activate the "hidden" checkbox, It allows me to change the font! So stupid!
So in my code (a derived class of NSTableView) I change the font of all my columns like that :
[ tableColumn setHeaderCell:tableHeaderCell ];
But, the font is always the small font on OSX El Capitan 10.11.4 :
Whereas, the same code in Yosemite displays the correct font :
I don't understand why?
Is there a specific thing to do in El Capitan with NSCell?
Thanks for any help.
objective-c - NSTableView - 删除列中的行
有没有办法删除特定列中的一行NSTableView
?如果我使用以下代码:
所有索引为 0 的行都被删除(在所有列中),这不是我想要的。我只想删除第 2 列中的第 0 行。这可能吗?
谢谢你的时间,丹。
objective-c - 是否可以以编程方式绑定在 Cocoa 中设置连续更新的两个关键路径?
在 macOS Cocoa 应用程序中,如果我有两个 NSSlider 对象,我可以以编程方式设置以下绑定:
这有效,但不会持续更新,除非我在界面构建器的检查器中为滑块设置了“连续”复选框。我的问题是我想设置其他不公开连续设置的属性之间的绑定,特别是两个 NSTableColumn 实例。是否可以通过在绑定代码中设置选项来连续绑定?
swift - NSTableColumn 使用 Core Data 字典排序
模型
customFields 键和值是字符串。
绑定
列是在代码中创建的,因为用户可以添加/删除列。
问题
单击列标题时,排序将不起作用。值只是字符串,但似乎它们不被视为这样。知道问题可能出在哪里吗?谢谢!
更新
- 处于
NSTreeController
实体模式 - 这是一个基于视图的大纲视图(现在仍然使用基于单元格的视图吗??)
- 对于静态列(在 IB 中定义),排序有效
- 当我对动态列进行排序时,什么也没有发生(没有错误)
- 我想这些值不被视为字符串,因为它是一个不使用泛型的 NSDictionary
更新 2
在另一个项目中,我成功地做到了。唯一的区别是字典不是,而是 whereMyObject
有value
type 的属性String
。使用以下代码启用排序:
或者这也有效:
我不知道为什么它在这种情况下有效,而不是在上面。