Cocoa 如何在NSSplitView的子视图中使用自动布局?
我的问题是重复的,但从未得到回答 我有一个包含两个子视图的NSSplitView。右边的子视图有一个标签,我想水平和垂直居中。基本骨架如下所示:Cocoa 如何在NSSplitView的子视图中使用自动布局?,cocoa,autolayout,appkit,nssplitview,Cocoa,Autolayout,Appkit,Nssplitview,我的问题是重复的,但从未得到回答 我有一个包含两个子视图的NSSplitView。右边的子视图有一个标签,我想水平和垂直居中。基本骨架如下所示: let window = /* ... */ let blankView = NSView(frame: .zero) let customView = NSView(frame: .zero) // set background colors let title = NSTextField(labelWithString: "Title") cu
let window = /* ... */
let blankView = NSView(frame: .zero)
let customView = NSView(frame: .zero)
// set background colors
let title = NSTextField(labelWithString: "Title")
customView.addSubview(title)
let splitView = NSSplitView(frame: .zero)
splitView.isVertical = true
splitView.addSubview(blankView)
splitView.addSubview(customView)
window.contentView = splitView
然后我添加了自动布局代码:
customView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
title.centerXAnchor.constraint(equalTo: customView.centerXAnchor),
title.centerYAnchor.constraint(equalTo: customView.centerYAnchor),
])
但现在滑块无法调整,窗口只能水平调整大小。右侧视图的大小保持不变
我尝试了多种translatesAutoresizingMaskIntoConstraints=、setContentHuggingPriority:for:和setHoldingPriority:forSubviewAt:的组合,但都不起作用
我可以在Interface Builder中毫无问题地重新创建此视图,但我不知道如何以编程方式执行此操作。将子视图的TranslatesAutoResizezingMaskinToConstraints设置为false
从翻译文件自动调整大小GMaskintoConstraints:
当此属性设置为true时,视图的superview将查看视图的自动调整大小遮罩,生成实现该遮罩的约束,并将这些约束添加到superview中。如果视图具有需要动态调整的灵活约束,请将此属性设置为false,然后自己应用约束
你试过title.translatesAutoResistingMagaskintoConstraints=false吗?@Willeke没有!非常感谢。所以你必须把它放在子视图上,这是有意义的。如果你提交答复,我将接受。
title.translatesAutoresizingMaskIntoConstraints = false