用 defaultSize
可設定 Window 視窗的預設大小。
SwiftUI
設定 macOS Window 的預設長寬
使用 defaultSize
這個 scene modifier 可設定 Window 在被 init 時的預設大小。舉例來說,我們可以讓視窗 new 出來時預設為寬 600、高 400。
@main
struct Example: App {
var body: some Scene {
WindowGroup {
ContentView()
}
.defaultSize(CGSize(width: 600, height: 400))
}
}
不過要注意,我們所設定的 Window 預設大小只有在視窗第一次被 init 時有效,使用者隨時都能調整視窗的大小,而這個大小會被系統記起來,下一次這個視窗再被打開時,就會是上次被關閉時的大小,不會再使用 defaultSize
所設定的大小。
如果我們所設定的預設大小超出了螢幕的長寬時,系統會自動將 Window 縮成螢幕能容納的大小。
設定 Window 的預設大小除了上面的寫法,還有另一個寫法:
.defaultSize(width: 600, height: 400)
在 visionOS 還可設定深度!
上面的 defaultSize
僅對 Window 設定了寬、高,而在 visionOS 上,因為作業系統的特殊性,有「volumetric window」,我們還可對這類型的 Window 設定深度。
@main
struct Example: App {
var body: some Scene {
WindowGroup {
ContentView()
}
.windowStyle(.volumetric)
.defaultSize(Size3D(width: 600, height: 400, depth: 600))
}
}
我們一定要把 Window 設成 volumetric style,設定的深度才有效。
除了上面的寫法,一樣還有另一種寫法:
.defaultSize(width: 600, height: 400, depth: 600)
補充
如果我們是想限制 Window 在縮放時的最大和最小值,可以使用 windowResizability。
關於 XcodeProject
XcodeProject 創立於 2023,致力於協助開發者探索 Apple 的創新世界,學習在 iOS、iPadOS、macOS、tvOS、visionOS 與 watchOS 上開發 App,發現眾多技術與框架,讓開發者獲得更多能力。