Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 如何在NSSplitView的子视图中使用自动布局?_Cocoa_Autolayout_Appkit_Nssplitview - Fatal编程技术网

Cocoa 如何在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

我的问题是重复的,但从未得到回答

我有一个包含两个子视图的NSSplitView。右边的子视图有一个标签,我想水平和垂直居中。基本骨架如下所示:

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