2023 年 10 月 22 日

macOS Swift SwiftUI visionOS

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

分享文章

已複製到剪貼板

追蹤網站

透過 Google 追蹤

超級感謝

關於 XcodeProject

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


Contacts

Ricky Chuang

XcodeProject

RickyChuang.xcodeproj@gmail.com

XcodeProject 聯絡

contact.xcodeproj@gmail.com

XcodeProject 的最新文章