我有一段时间设置一个简单的拆分视图.第一个拆分视图已折叠.我需要为它设置最小宽度.我在网上看到的所有内容(NSSplitViewController / NSSplitView都很少)都是针对Objective-C的,将所有内容放在app委托中,并使用XIB.
这是场景:
具有segue到SplitView控制器的窗口控制器,它有两个分割视图(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
- }
- }
还有更多我想念的吗?
谢谢
UPDATE
根据下面的评论,我做了一个更改,但现在我在AppDelegate的类定义上获得了一个sigAbort. Full code
视图控制器:
- 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,ofSubviewAt dividerIndex: Int) -> CGFloat {
- return proposedMinimumPosition + 200
- }
- }
SidebarViewController:
- import Cocoa
- class SidebarViewController: NSViewController {
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do view setup here.
- }
- }
DatasetViewController:
- import Cocoa
- class DatasetViewController: NSViewController,NSSplitViewDelegate {
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do view setup here.
- }
- }
更新
我拿走了我的自定义NSSplitViewController类并创建了两个NSSplitView类,一个使用约束方法.现在,我看到了两个子视图,但它们比它们应该小得多:
有没有人用Swift和Storyboard做到这一点?