【问题标题】:Handling selected rows when NSTableView is reordered重新排序 NSTableView 时处理选定的行
【发布时间】:2013-07-24 11:20:30
【问题描述】:

这是一个关于 NSTableView 的 UI 行为最佳实践的问题。

我有一个 NSTableView,它的内容偶尔会刷新。用户可以在表格中选择无、一或多行。刷新数据时,可以删除或重新排序某些行。 NSTableView 的默认行为似乎是选择相同的行索引,无论数据如何重新排序(我理解这种行为,因为 NSTableView 怎么知道行移动到哪里?)

我可以更改此行为以在重新加载数据后修改选择,以便用户的原始选择保持选中状态,即使它们已经移动了。这会改变被选择的行索引,所以它也可能对用户造成影响。

Apple 对这种情况有什么要说的还是有标准的行为?

【问题讨论】:

  • 我检查了 iTunes 的行为,它在处理数据后保留了用户选择的项目,所以我倾向于积极维护用户的选择。
  • 我发现的另一个应用程序是 Numbers。当您选择一行,然后按列排序时,您的选择将保持不变。

标签: cocoa nstableview hig


【解决方案1】:

我在 HIG 中找不到任何内容,但是“保留选择”部分中的 NSArrayController 文档和 "Cocoa Bindings Programming Topics" 文档表明默认行为是在内容更改时保留选择。

另请参阅setPreservesSelection 的文档。

【讨论】:

    猜你喜欢
    • 2016-01-30
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多