我有一段时间设置一个简单的拆分视图。第一个拆分视图已折叠。我需要为它设置一个最小宽度。我在网上看到的所有东西(NSSplitViewController/NSSplitView 很少见)都是用于 Objective-C 的,将所有东西都放在应用程序委托中,并使用 XIB。
场景如下:窗口控制器与 SplitView 控制器有一个 segue,它有两个拆分视图(2 个视图控制器)。
哪个对象需要有 NSSplitViewDelegate?
编辑:添加代码片段: 例如,我有这个:
import Cocoa
class ViewController: NSSplitViewController, NSSplitViewDelegate {
@IBOutlet weak var pdlSplitView: NSSplitView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func splitView(splitView: NSSplitView, constrainMinCoordinate proposedMinimumPosition: CGFloat, ofSubviewAt dividerIndex: Int) -> CGFloat {
return proposedMinimumPosition + 200
}
}
还有更多我想念的吗?
谢谢
更新
根据下面的评论,我进行了更改,但现在我在 AppDelegate 的类定义上获得了 sigAbort。完整代码
视图控制器:
import Cocoa
class ViewController: NSSplitViewController, NSSplitViewDelegate {
@IBOutlet weak var pdlSplitView: NSSplitView!
let publicDataListings : PDL = PDL()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.pdlSplitView.delegate = self
}
override func splitView(splitView: NSSplitView, constrainMinCoordinate proposedMinimumPosition: CGFloat, ofSubviewAt dividerIndex: Int) -> CGFloat {
return proposedMinimumPosition + 200
}
}
侧边栏视图控制器:
import Cocoa
class SidebarViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
}
}
数据集视图控制器:
import Cocoa
class DatasetViewController: NSViewController, NSSplitViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
}
}
更新 我拿走了我的自定义 NSSplitViewController 类并创建了两个 NSSplitView 类,一个使用约束方法。现在,我看到了两个子视图,但它们比它们应该的要小得多:
有没有人用 Swift 和 Storyboards 做到这一点?