単純な分割ビューを設定するのにかなりの時間を費やしています。最初の分割ビューは折りたたまれています。最小幅を設定する必要があります。私がオンラインで見るもの (NSSplitViewController/NSSplitView はほとんどない) はすべて Objective-C 用であり、すべてをアプリ デリゲートに入れ、XIB を使用します。
シナリオは次のとおりです。2 つの分割ビュー (2 つのビュー コントローラー) を持つ SplitView コントローラーへのセグエを持つウィンドウ コントローラー。
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
}
}
サイドバーViewController:
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 クラスを取り除き、2 つの NSSplitView クラスを作成しました。1 つは制約メソッドです。これで、両方のサブビューが表示されますが、実際よりもはるかに小さいです。
Swift と Storyboards でこれを行った人はいますか?