Mon*_*olo 15 cocoa resize nsscrollview autolayout
NSScrollView
在使用自动布局时,是否有一种简单的方法可以适应其文档视图更改大小?
我曾尝试都调用setNeedsUpdateConstraints:
,并setNeedsLayout:
在文档视图,夹视图和滚动视图,没有任何结果.
fittingSize
文档视图报告正确的大小.
问题是,当子视图改变其大小时,即使他们调用,也不会重新调整保存子视图的文档视图的大小invalidateIntrinsicContentSize
.因此,文档视图的内容在它们增长时被剪切为文档视图的原始大小.文档视图在笔尖中创建,并在awakeFromBib
方法中设置为滚动视图的文档视图.
我希望文档视图框在其fittingSize
更改时自动进行调整,并相应地更新滚动条.
NSPopover
做类似的事情 - 假设内容控制器视图的子视图设置了正确的约束,并且各种内容拥抱值足够高(高于隐藏的弹出窗口的高约束优先级,对于一个).
Mon*_*olo 15
问题当然是在添加文档视图时,Cocoa会在文档视图插入的视图中自动创建一些硬约束,即剪辑视图.
所以我自己的问题的答案很简单,只需使用:
// Assume self.docView is an IBOutlet populated with
// an NSView subclass
self.docView.translatesAutoresizingMaskIntoConstraints = NO;
Run Code Online (Sandbox Code Playgroud)
在将文档视图添加到滚动视图之前:
self.scrollView.documentView = self.docView;
Run Code Online (Sandbox Code Playgroud)
现在,由于剪辑视图中的文档视图布局没有自动生成的约束,因此您需要显式添加它们.否则,doc视图的内容将在滚动视图的左上角以其固有大小呈现.
归档时间: |
|
查看次数: |
8038 次 |
最近记录: |