NSScrollView放大内容

ben*_*sub 3 macos cocoa nsscrollview

我试图找出NSScrollView的内容放大率如何工作:

我有一个NSScrollView,我正在尝试添加一个包含NSTextField的NSView.

我用文本字段创建NSView并将其添加到NSScrollView文档视图(scrollView.documentView addSubview:...),所以我最终得到以下内容:

NSScrollView.documentView - > NSView - > NSTextField

当NSScrollView上的放大率发生变化时,NSView会自动调整大小,并且NSTextField的边界/单击区域也会调整大小,但实际的NSTextField不会调整大小:(如果我的话,那些红色轮廓将是光标将改变的位置鼠标悬停在哪里我必须单击开始编辑,这样实际上是以某种方式正确缩放)

正常尺寸 放大,鼠标悬停/开始编辑红色边界 甚至更大的放大,实际边界再次以某种方式缩放,所以我必须在这些红点内点击开始编辑

如果我跳过NSView,并将NSTextField直接添加到NSSCrollView.documentView,我得到一个类似的"效果",其中实际的文本/文本字段将缩放,但不是焦点环:

现在文本字段没问题,但焦点环不能缩放

它看起来像直接"下面"的NSScrollView.documentView将正确扩展,但不是它的子视图?

我尝试设置autoresizing mask和autoresizessubviews-> TRUE到处都没有用...

我究竟做错了什么?

谢谢您的帮助!

Wil*_*ley 5

我不认为你做错了什么,它只是打破了.遗憾的是,大多数小工具都不会以理智的方式上下扩展.他们是非常古老的课程,并且有大量的黑客攻击,并且最近刚刚(重新)添加了缩放.

如果您正在实现自己的视图,则缩放很棒,但对于窗口小部件不会非常有用.(我甚至不知道他们是否拥有适用于所有小部件的完全可扩展的艺术作品.)