В настоящее время я работаю над проектом, для которого требуется реализация вертикального разделения, аналогичная представлению 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))
}
}