如何在 Mac 上的 NSScrollView 上执行 contentInset

Posted

技术标签:

【中文标题】如何在 Mac 上的 NSScrollView 上执行 contentInset【英文标题】:How to Do a contentInset on a NSScrollView on a Mac 【发布时间】:2013-12-07 21:31:49 【问题描述】:

我正在尝试在 NSScrollView 上执行 contentInset,其方式与在 UIScrollView 中的 ios 相同。但是没有办法做到这一点。有没有办法做到这一点?这张图片应该描述我正在尝试做的事情:

如果有人知道解决方案,我绝对很乐意听到!快把我逼疯了

【问题讨论】:

图片没有描述你想要做什么。 是的。滚动到顶部时,网格会被嵌入,因此导航栏不会覆盖它。 @Blakeasd 你有没有想过如何做到这一点?我需要做同样的事情。 @xizor 不,永远无法弄清楚该怎么做。 :// @Blakeasd 哎哟,谢谢。 【参考方案1】:

你应该尝试这样的事情

scrollView.automaticallyAdjustsContentInsets = NO;
scrollView.contentInsets = NSEdgeInsetsMake(offset, 0, 0, 0);

【讨论】:

这些属性仅在 OS X 10.10 中可用。 此外,在完成此操作后,您可能必须添加 scrollView.contentView.scrollToPoint(NSMakePoint(0, -offset)) 才能滚动到顶部,因为一旦更改了 contentInset,初始滚动位置就会关闭。

以上是关于如何在 Mac 上的 NSScrollView 上执行 contentInset的主要内容,如果未能解决你的问题,请参考以下文章

使用没有 nib 的 NSTableView 创建 NSScrollView — TableView 上缺少约束

如何设置 NSScrollView 的内容大小?

如何在 NSScrollView 中强制重绘内容

仅在特定值上停止 NSScrollView - 像 UIScrollView 分页

如何在放大的 NSScrollView 中修复 NSTextView 的奇怪大小

如何让 NSScrollView 在 10.9 及更高版本中居中文档视图?