誰かがこれで私を助けてくれることを望んでいました。
IB でもコードでも、新しい NSSplitViewController とその項目を折りたたみ可能にしたり、優先順位を保持したりすることはできません。
このビデオは別の方法で示していますが、インターフェイスビルダーからは実行できません: https://www.youtube.com/watch?v=ZIIuPo4F6tQ
コードで分割ビュー項目を最小幅にすることしかできませんが、これでほとんどです。Swift と Objective-C の両方の実装をテストしましたが、うまくいきませんでした。
これは私が迅速に書いたものです:
override func viewDidLoad() {
super.viewDidLoad()
// ---
var left: NSSplitViewItem = self.splitViewItems[0] as NSSplitViewItem
var right: NSSplitViewItem = self.splitViewItems[1] as NSSplitViewItem
// ---
// NOTE: these are not working properly in the interface builder for now
self.view.addConstraint(NSLayoutConstraint(
item: left.viewController.view,
attribute: NSLayoutAttribute.Width,
relatedBy: NSLayoutRelation.GreaterThanOrEqual,
toItem: nil,
attribute: NSLayoutAttribute.NotAnAttribute,
multiplier: 0,
constant: 200
))
self.view.addConstraint(NSLayoutConstraint(
item: right.viewController.view,
attribute: NSLayoutAttribute.Width,
relatedBy: NSLayoutRelation.GreaterThanOrEqual,
toItem: nil,
attribute: NSLayoutAttribute.NotAnAttribute,
multiplier: 0,
constant: 200
))
// ---
// NOTE: these are not working in the interface builder neither here but set anyway to demonstrate the problem
left.canCollapse = true // has no effect
right.canCollapse = true // has no effect
// ---
// NOTE: this is not working in the interface builder neither here but set anyway to demonstrate the problem
right.holdingPriority = 1.0 // has no effect
}
これはまったく機能しません。関数の一番下にあるスーパーへの呼び出しを動かそうとしましたが、あまり運がありませんでした。
誰かが解決策を特定したのか、それとも私が何か完全に間違っているのか疑問に思っていましたか?