我试图在我的应用程序中复制Mail.app行为。如果您有多个电子邮件帐户,并为每个帐户选择一个随机的电子邮件,并从侧边栏切换到每个帐户之间,应用程序会记住您的滚动位置和您选择的电子邮件并相应地显示它们。这就是我在我的应用程序中想要的。
我知道如何保存行选择,这很容易。tableView.selectedRowIndexes
因此,我的tableView具有来自侧栏的多个数据源和交换机(tableView.reloadData())。
我的卷轴位置有一个很大的问题。我试着调查了NSScrollView,NSClipView和NSTableView。在我看来,每个视图都有滚动机制。
时,我需要加载以前的滚动位置。
另外,我注意到的一种奇怪的行为是,当将tableView重新加载到不同的数据源时,它似乎始终记得以前的数据源滚动位置。这正常吗?我以为它会被重置到顶端。
我的数据源是数组,它是我的NSViewController子类属性。
如果重要的话,我使用的是故事板,我的应用程序是针对大苏尔,我是使用Swift。
发布于 2020-12-31 10:04:26
保存的位置:
preservedPosition = tableView.visibleRect.origin恢复:
tableView.scroll(preservedPosition)https://stackoverflow.com/questions/65510195
复制相似问题