@Nathanの回答からのリンクに、コンテンツのSwiftバージョンを書きました。私の例のコンテキストではsplitView
、おそらく包含クラスのインスタンス プロパティとして、別の場所に設定されています。
func toggleSidebar () {
if splitView.isSubviewCollapsed(splitView.subviews[1] as NSView) {
openSidebar()
} else {
closeSidebar()
}
}
func closeSidebar () {
let mainView = splitView.subviews[0] as NSView
let sidepanel = splitView.subviews[1] as NSView
sidepanel.hidden = true
let viewFrame = splitView.frame
mainView.frame.size = NSMakeSize(viewFrame.size.width, viewFrame.size.height)
splitView.display()
}
func openSidebar () {
let sidepanel = splitView.subviews[1] as NSView
sidepanel.hidden = false
let viewFrame = splitView.frame
sidepanel.frame.size = NSMakeSize(viewFrame.size.width, 200)
splitView.display()
}
これらの関数はおそらくクラスのメソッドであり、私にとってはそうです。splitView
できる場合は、nil
明らかにそれを確認する必要があります。これは、2 つのサブビューとインデックス 1 のサブビューがあることも前提としています。ここでsidePanel
は、折りたたみたいサブビューです。