首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为每个数据源保留(并加载)表视图滚动位置

为每个数据源保留(并加载)表视图滚动位置
EN

Stack Overflow用户
提问于 2020-12-30 16:24:20
回答 1查看 393关注 0票数 0

我试图在我的应用程序中复制Mail.app行为。如果您有多个电子邮件帐户,并为每个帐户选择一个随机的电子邮件,并从侧边栏切换到每个帐户之间,应用程序会记住您的滚动位置和您选择的电子邮件并相应地显示它们。这就是我在我的应用程序中想要的。

我知道如何保存行选择,这很容易。tableView.selectedRowIndexes

因此,我的tableView具有来自侧栏的多个数据源和交换机(tableView.reloadData())。

我的卷轴位置有一个很大的问题。我试着调查了NSScrollViewNSClipViewNSTableView。在我看来,每个视图都有滚动机制。

  1. 当用户滚动每个数据源的
  2. 时,我需要记住滚动位置,当用户返回到数据源

时,我需要加载以前的滚动位置。

另外,我注意到的一种奇怪的行为是,当将tableView重新加载到不同的数据源时,它似乎始终记得以前的数据源滚动位置。这正常吗?我以为它会被重置到顶端。

我的数据源是数组,它是我的NSViewController子类属性。

如果重要的话,我使用的是故事板,我的应用程序是针对大苏尔,我是使用Swift。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-31 10:04:26

保存的位置:

代码语言:javascript
复制
preservedPosition = tableView.visibleRect.origin

恢复:

代码语言:javascript
复制
tableView.scroll(preservedPosition)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65510195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档