问题描述
我想创建一个简单的 appkit 项目,但我不想使用 storyboard 或 xib。 但是当代码执行到 22 行时,xcode 显示错误 msg.And 我在屏幕上看不到任何东西....
import Cocoa
import SwiftUI
@main
class AppDelegate: NSObject,NSApplicationDelegate {
var window: NSWindow!
func applicationDidFinishLaunching(_ aNotification: Notification) {
window = NSWindow(
contentRect: NSRect(x: 0,y: 0,width: 480,height: 300),styleMask: [.titled,.closable,.miniaturizable,.resizable,.fullSizeContentView],backing: .buffered,defer: false)
window.isReleasedWhenClosed = false
window.center()
window.setFrameAutosaveName("Main Window")
window.contentViewController = HomeViewController()
window.makeKeyAndOrderFront(nil)
}
func applicationWillTerminate(_ aNotification: Notification) {
// Insert code here to tear down your application
}
}
class HomeViewController: NSViewController {
}
解决方法
import Cocoa
import SwiftUI
@main
class AppDelegate: NSObject,NSApplicationDelegate {
var window: NSWindow!
func applicationDidFinishLaunching(_ aNotification: Notification) {
window = NSWindow(
contentRect: NSRect(x: 0,y: 0,width: 1080,height: 720),styleMask: [.titled,.closable,.miniaturizable,.resizable,.fullSizeContentView],backing: .buffered,defer: false)
window.isReleasedWhenClosed = false
window.center()
window.setFrameAutosaveName("Main Window")
window.contentViewController = HomeViewController()
window.makeKeyAndOrderFront(nil)
}
func applicationWillTerminate(_ aNotification: Notification) {
}
}
class HomeViewController: NSViewController {
override func loadView() {
let v = NSView()
self.view = v
}
override func viewDidLoad() {
super.viewDidLoad()
self.view.frame = .init(x: 0,width: 100,height: 100)
}
}