可可 – 使用自动布局自动生成NSScrollView的文档视图?

可可 – 使用自动布局自动生成NSScrollView的文档视图?,第1张

概述在使用自动布局时,是否有一种简单的方法来获取NSScrollView来适应其文档视图更改大小? 我已经尝试调用setNeedsUpdateConstraints:和setNeedsLayout:在文档视图,剪辑视图和滚动视图,没有任何结果. 文档视图的fittingSize报告正确的大小. 问题是,当子视图更改大小时,即使它们调用invalidateIntrinsicContentSize,文档视


在使用自动布局时,是否有一种简单的方法来获取NSScrollVIEw来适应其文档视图更改大小?

我已经尝试调用setNeedsUpdateConstraints:和setNeedsLayout:在文档视图,剪辑视图和滚动视图,没有任何结果.

文档视图的fittingSize报告正确的大小.

问题是,当子视图更改大小时,即使它们调用invalIDateIntrinsicContentSize,文档视图也就不会重新设置子视图.因此,文档视图的内容因为增长而被裁剪成文档视图的原始大小.文档视图在一个nib中创建,并在awakeFromBib方法中设置为滚动视图的文档视图.

我希望在其fitSize更改时自动调整文档视图框,并相应地更新滚动条.

NSPopover做类似的事情 – 只要内容控制器视图的子视图具有正确的约束条件,并且各种内容拥有值足够高(高于隐藏的popover窗口的高限制优先级,一个).

解决方法 问题当然是在添加文档视图时,Cocoa会在视图中自动创建一些硬约束,即将文档视图插入到剪辑视图中.

所以答案我自己的问题很简单,只需使用:

// Assume self.docVIEw is an IBOutlet populated with// an NSVIEw subclassself.docVIEw.translatesautoresizingMaskIntoConstraints = NO;

在将文档视图添加到滚动视图之前:

self.scrollVIEw.documentVIEw = self.docVIEw;

现在,由于剪辑视图中文档视图的布局没有自动生成约束,因此您需要显式添加它们.否则,文档视图的内容将仅在滚动视图左上角的内在大小呈现.

@H_419_50@ 总结

以上是内存溢出为你收集整理的可可 – 使用自动布局自动生成NSScrollView的文档视图?全部内容,希望文章能够帮你解决可可 – 使用自动布局自动生成NSScrollView的文档视图?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1030557.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存