Программный вертикальный разделенный вид (MacOS)

В настоящее время я работаю над проектом, для которого требуется реализация вертикального разделения, аналогичная представлению Master Detail Split для iOS. Я планирую реализовать разделенное представление программно, так как предпочитаю создавать свой интерфейс с помощью кода, а не раскадровки. Единственные примеры, которые я смог найти в Интернете, были созданы с использованием раскадровки. Любая помощь приветствуется! Ниже мой текущий код:

AppDelegate.swift:

import Cocoa

class AppDelegate: NSObject, NSApplicationDelegate {
    
    private var window: NSWindow?    

    func applicationDidFinishLaunching(_ aNotification: Notification) {
        window = NSWindow(contentRect: NSMakeRect(0, 0, NSScreen.main?.frame.width ?? 100, NSScreen.main?.frame.height ?? 100), // for full height and width of screen
                           styleMask: [.miniaturizable, .closable, .resizable, .titled],
                           backing: .buffered,
                           defer: false)
        window?.contentViewController = ViewControllerOne()
        window?.makeKeyAndOrderFront(nil)
    }
    
    func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
         return true
    }

    func applicationWillTerminate(_ aNotification: Notification) {
        // Insert code here to tear down your application
    }


}

основной.свифт:

import Cocoa

let delegate = AppDelegate()

NSApplication.shared.delegate = delegate

_ = NSApplicationMain(CommandLine.argc, CommandLine.unsafeArgv)

ViewControllerOne.swift:

import Cocoa

class ViewControllerOne: NSViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        

        // Do any additional setup after loading the view.
    }
    override func loadView() {
        self.view = NSView(frame: NSRect(x: 0, y: 0, width: 250, height: 500))
    }
}

ViewControllerTwo.swift:

import Cocoa

class ViewControllerTwo: NSViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        

        // Do any additional setup after loading the view.
    }
    override func loadView() {
        self.view = NSView(frame: NSRect(x: 0, y: 0, width: 500, height: 500))
    }
}


person Lachy Schumacher    schedule 27.01.2021    source источник
comment
Возможно, это поможет: stackoverflow.com/questions/5850440/   -  person koen    schedule 28.01.2021