【问题标题】:Using autolayout, how can I center a subview in an NSSplitView without forcing the width NSSplitView to be static?使用自动布局,如何在 NSSplitView 中将子视图居中而不强制宽度 NSSplitView 为静态?
【发布时间】:2015-06-13 19:45:50
【问题描述】:

我有一个 NSSplitView,内容包含在两个 NSView 中。左边的 NSView 有 2 个约束——Equal WidthsEqual Heights。正确的 NSView 有一些简单的东西,比如说一个 NSTextField,它通过约束 Center X AlignmentCenter Y Alighment 居中。这就是我希望在调整窗口大小和/或 NSSplitView 分隔符时的样子:

这是正在发生的事情:

我尝试了很多配置更改,我尝试使用 NSSplitViewController 与只是将 NSSplitView 放入 NSViewController 以通过编程方式调整更多参数,但我没有任何运气。每当调整窗口大小时,左视图总是会占据多余的空间。分隔线也会发生同样的情况(它可以调整大小,但松开鼠标按钮会使其立即弹回)。似乎我在这里缺少一些基本的东西。

【问题讨论】:

    标签: cocoa appkit nssplitview


    【解决方案1】:

    文本字段的内容拥抱优先级可能高于拆分视图项的持有优先级。解决这个问题,视图可能会按照您期望的方式工作。

    此外,如果在调整视图大小时,左视图随窗口一起调整大小,而右视图保持相同大小,则表明左视图的保持优先级可能高于右视图。您应该让想要保持相同大小的一侧具有更高的持有优先级。

    也就是说,我不确定您对子视图设置的约束是什么意思。 “左边的NSView 有两个约束——Equal WidthsEqual Heights。”你在这里是什么意思?它的宽度等于什么?它的高度等于什么?你的意思是它有纵横比限制吗?坦率地说,我想不出什么样的约束对于拆分视图中的视图有意义。

    【讨论】:

    • 感谢您的信息。稍后我会玩这个,看看我能想出什么。拆分视图中有 2 个自定义视图。左侧自定义视图具有等宽约束,其中第一项 = 滚动视图(滚动视图在左侧自定义视图内),关系 = 相等,第二项 = superview.width。右视图也一样。没有纵横比限制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多