如何在Cocoa中实现自定义列表?

Chr*_*ian 5 cocoa webview nstableview nscollectionview

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

  1. 一个TableView,
  2. 一个CollectionView或
  3. 一个WebView.

我认为它可以与所有这些一起使用,但哪一个最符合以下要求?

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

到目前为止,我的研究表明TableView具有大部分功能,但在外观上更难定制,CollectionView没有拖放(对吧?)但很容易设计,WebView需要花费很多精力才能实现伤害了用户体验,我无法将我的模型直接绑定到输入字段.

我错过了什么利弊,你建议使用什么?

Mat*_*ier 4

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

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