SwiftUI

2023 年 10 月 22 日

SwiftUI 設定 Window 視窗的預設大小

已複製到剪貼板


defaultSize 可設定 Window 視窗的預設大小。

SwiftUI
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

分享文章

已複製到剪貼板

主題文章

查看 SwiftUI

超級感謝

關於 XcodeProject

XcodeProject 創立於 2023,致力於協助開發者探索 Apple 的創新世界,學習在 iOS、iPadOS、macOS、tvOS、visionOS 與 watchOS 上開發 App,發現眾多技術與框架,讓開發者獲得更多能力。


Contacts

Ricky Chuang

XcodeProject

RickyChuang.xcodeproj@gmail.com

XcodeProject 聯絡

contact.xcodeproj@gmail.com

最新文章