设置自动布局NSSplitView初始位置

时间:2015-10-04 15:27:46

标签: macos cocoa autolayout

我有一个由autolayout支持的NSSplitView视图,这很有效。但是我需要能够在代码中设置初始拆分位置(因为它将从首选项中恢复)。

我无法弄清楚如何使这项工作。在El Capitan之前,设置框架宽度似乎有效但我意识到这是在规避自动布局的规则,所以这不是一个选择。不使用autolayout也不是一个真正的选择。我需要在加载视图时设置它,所以可能有一种方法来指定与在XCode中设置宽度时相同的宽度,但我无法弄清楚如何。

有什么想法吗?指针?或者这不可能吗?如果我可以避免它,我宁愿不必切换到另一个NSSplitView变体,但如果这是唯一可行的解​​决方案,我会这样做。

1 个答案:

答案 0 :(得分:2)

假设约束允许,分割视图的分隔符位置应该保持在NIB中的设置方式。

您可以为拆分视图设置autosaveName。如果设置了该值,则在运行时调整分割视图时,分割视图将在首选项中保存其分隔符位置。在后续加载时,它应该将其分隔符位置恢复为保存的内容。

最后,您可以随时使用-setPosition:ofDividerAtIndex:以编程方式设置它,包括-viewDidLoad-windowDidLoad方法。