NSOutlineView - 在启动时滚动到顶部

Posted

技术标签:

【中文标题】NSOutlineView - 在启动时滚动到顶部【英文标题】:NSOutlineView - scroll to top at launch 【发布时间】:2011-08-18 10:41:26 【问题描述】:

获得了一个在控制器的 awakeFromNib 中配置的 NSOutlineView,带有一个数据源和自动保存的扩展节点。

一切都像魅力一样工作。

问题是在某个地方,也有人保存了滚动位置的状态。

这意味着在应用程序启动时,大纲视图可能会滚动到底部 - 如果这是用户上次离开的方式(如果重要,这在 Lion 上)。

在大纲视图滚动到顶部的情况下打开应用程序的最佳方式是什么?最好在 awakeFromNib 中,或者至少这样用户不会看到滚动动作。

【问题讨论】:

【参考方案1】:

我最近开始遇到我的 NSOutlineView 向下滚动的问题(所以我在向上滚动之前看不到我的元素),我使用了这种方法:

在我的applicationDidLaunch: 方法中我使用这个:

[outlineView scrollPoint:NSMakePoint(0.0f, [outlineView frame].size.height)];

而且它似乎有效。 (我在 IKImageBrowserView 上也遇到了同样的问题,同样的代码也可以解决这个问题) 希望这个解决方案更适合你^^

【讨论】:

【参考方案2】:

[outlineView scrollToVisible:0]; 呢?

【讨论】:

您确认outlineView 在执行该行时不为零吗? 接受这个 a 显然是正确的答案,把它写成我这边的一些愚蠢的错误。 不是scrollRowToVisible:吗?

以上是关于NSOutlineView - 在启动时滚动到顶部的主要内容,如果未能解决你的问题,请参考以下文章

滚动时如何让侧边栏对齐到顶部?

在 HTML 中的页面刷新时强制页面滚动位置到顶部

滚动到顶部时删除类

在导航更改时滚动恢复到顶部

scss 滚动时的UI到顶部/页面到顶部按钮

Angular 5 在每次路线点击时滚动到顶部