我的应用程序的主窗口包含一个NSSplitView
。
我需要获取拆分视图的第一个子视图的宽度(左侧的视图),以便执行一些UI更新。
我试图在两个不同的地方获取此值:
windowDidLoad()
方法viewDidLayout()
方法中使用以下代码:
var leftViewWidth: CGFloat? {
guard let leftView = splitViewController?.splitView.arrangedSubviews.first else {
return nil
}
return leftView.frame.size.width
}
在两个地方,此代码均返回 234 (在应用启动后),但是当我单击按钮并运行相同的代码时,它突然返回 254 (这是正确的值)。
这告诉我,在上述两个地方,拆分视图的布局尚未完成,并且此后系统以某种方式调整了左视图的大小。所以问题是:
(出于好奇:这20点有什么区别?)
编辑:
由于某些原因,当我将第一个拆分视图项目的behavior
设置为sidebar
或contentList
时,不会发生此问题。我真的不知道该怎么办,但这可能只是个提示...