【发布时间】:2013-01-17 17:01:52
【问题描述】:
我有一个 NSTableview 和一个按钮。 NSTableview 的列数未知。
第一列有一个图像井和 2 个文本框,其他的(同样,未知数字)是普通的文本框列。
该按钮打开一个文件打开对话框。一旦我选择了文件(.jpg),我想处理它们。
到目前为止,一切都已完成(选择文件、列等)。缺少的是表格的填充:
我有遍历所有选定文件的循环。最好的方法是什么:
- 在第一个单元格的图像井中显示图像,
- 在第一个单元格的第一个文本框中输入文件名,
- 在文本框的第二个单元格中输入文件路径,
- 在所有其他列中输入“YES”。
我的困难是我不知道会有多少列,因为它取决于用户。列数在运行时不会改变。它们是在启动时根据配置设置的。如果配置发生变化,则应重新加载应用程序。
我是 Objective-C/Cocoa 编程的初学者。
编辑: 根据要求提供其他信息:
它是一个基于视图的 NSTableView 每列代表稍后必须对图像执行的操作。程序用户可以决定采取什么行动以及采取多少行动,这就是表格视图中列数未知的原因。
【问题讨论】:
-
表格视图是规则的,所有行的列数必须相同。
-
谢谢,所有行的列数都相同。但我不知道有多少,因为用户可以添加他想要的数量。所以我无法在不知道它将拥有的元素数量的情况下创建模型......
-
好问题,如果表视图可能具有的最小/最大列数之间的差异非常小,您可以考虑创建多个视图,每个视图包含不同的表视图(取决于列数),并在需要更改列数时交换视图。
-
不幸的是,它可以是 2 到 40 列之间的任何内容...
-
不应该仅仅因为您更改了他们想要显示的列而强制用户重新启动应用程序。 (事实上,如果我尝试了一个应用程序,它很快就会进入垃圾箱)。您可以轻松地动态添加或删除表格列,然后调用
[tableView reloadData]以正确填写新列。但这将有助于更多地了解不同列的用途。
标签: objective-c xcode cocoa nstableview