我希望有人可以帮我解决这个问题。
无论我做什么,无论是IB还是代码,我都无法使新的NSSplitViewController及其项目可折叠或保持其优先级。
虽然此视频另有说明,但无法从界面构建器完成:https://www.youtube.com/watch?v=ZIIuPo4F6tQ
我只能使splitview项目在代码中具有最小宽度,但这几乎就是这样。我毫不费力地测试了Swift和Objective-C的实现。
这是我在swift中写的:
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
}
这些都不起作用。我甚至尝试将这个电话移动到功能底部的超级电话而没有太多运气。
我想知道是否有人确定了解决方案,或者我做错了什么?
答案 0 :(得分:11)
(一个问题:在崩溃之后,我无法用鼠标返回折叠视图;这可能需要实现有效的rect委托方法。更新:折叠时有效的rect不适用,所以我认为使用NSSplitViewItem.collapsed在代码中似乎是解除崩溃的唯一方法。这种行为与'经典'NSSplitView不同......)
此基本设置按预期工作,无需特定编码或覆盖。 (OS X Storyboard App,Swift,Xcode 6.1)