5

我想构建一个 Cocoa 应用程序,其条目列表与 Things.app 的 ToDo 列表非常相似(请参阅截屏视频)。问题是我是否应该使用

  1. 一个表视图,
  2. 一个 CollectionView 或
  3. 一个网页视图。

我认为它可以适用于所有这些,但哪一个最适合以下要求?

  • 有一个条目列表-> 1 列和多行
  • 通过拖放重新排序
  • 选择单个条目并使用键进行删除等操作
  • 打开一个条目:该行应展开以显示更多输入字段
  • 定制外观:圆角、阴影、背景渐变

到目前为止,我的研究表明 TableView 具有大部分功能,但在外观上更难自定义,CollectionView 没有拖放(对吗?)但易于设计,WebView 需要付出很多努力才能做到伤害了用户体验,我无法将模型直接绑定到输入字段。

我缺少什么优点和缺点,你会推荐使用什么?

4

5 回答 5

4

WebView 没有意义。如果您使用 WebView,不妨创建一个 Web 应用程序。NSCollectionView 更适合网格类数据,例如每小时的电视节目表。

在这种情况下,NSTableView 是唯一有意义的。我已经使用 NSTableView 实现了所有 5 个要点,没有问题。您需要扩展 NSTableView 并为自定义外观做一些自定义绘图。这是最难的部分。

于 2009-08-10T12:56:49.750 回答
2
  • 打开一个条目:该行应展开以显示更多输入字段

你需要一个大纲视图。表格视图用于平面列表。

请注意,NSOutlineView 是 NSTableView 的子类,因此所有表格视图功能也适用于大纲视图。

于 2009-08-10T13:54:44.913 回答
2

已经有人这样做了。我成功使用的一个是 Matteo Bertozzi,可在此处获得: http ://th30z.netsons.org/2009/03/cocoa-sidebar-with-badges-take-2/ 可能需要一些按摩才能让它正常工作(特别是如果您需要复杂的拖放行为),但对于基本功能,例如获取列表中的部分标题和项目,它工作得很好。

编辑:这已经出现过,并且是 cocoa-dev 电子邮件列表中的一个常见问题。 这里有一些其他选项

于 2009-08-10T14:59:35.920 回答
1

刚刚使用“F-script Anywhere”查看了 Things.app 本身。

他们使用了一个名为“DetailTableView”的 NSTableView 子类,它显示了浓缩的待办事项。折叠的待办事项是使用一个名为“ToDoCell”的自定义单元格实现的,但是编辑时得到的扩展外观很有趣。在这种情况下,他们有一个名为“ToDoEditView”的自定义视图,在需要时作为 DetailTableView 的子视图插入。我怀疑这个编辑视图被临时添加为正确位置的子视图,并且 tableview 的相应行在它存在时会临时调整大小。

都是推测性的..我很想知道这是如何完成的细节。这是一个很棒的用户界面。

于 2009-08-11T15:28:15.863 回答
0

我在我的应用程序中处理了同样的问题(有一个类似于待办事项列表的大列表),我认为表格视图在这里很有意义。

诀窍是让您的单元格(“行”)在双击时展开。这就是我到目前为止所取得的所有进展。

于 2009-08-10T15:33:22.237 回答