我創建了一個 HelloWorld macOS SwiftUI 專案,我在“查看”選單中看到了EnterFullScreen選項,那么如何洗掉此選項并在 SwiftUI 中從 bace 禁用它?
@main
struct testApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}

uj5u.com熱心網友回復:
您可以UserDefaults通過將鍵“NSFullScreenMenuItemEverywhere”設定為 false來更改此答案,但如果您按照該答案中的方式進行操作,則為applicationWillFinishLaunching時已晚,無法生效,因此請將其移至init()您的 App 結構中
init() {
UserDefaults.standard.set(false, forKey: "NSFullScreenMenuItemEverywhere")
}
如果您更愿意為此使用 AppStorage 屬性包裝器,它可能看起來像這樣
@AppStorage("NSFullScreenMenuItemEverywhere") var fullScreenEnabled = false
init() {
fullScreenEnabled = false
}
uj5u.com熱心網友回復:
最簡單的方法是為視圖定義最大尺寸,然后告訴視窗組使用內容尺寸作為視窗尺寸的限制。
例如:
struct TestApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.frame(maxWidth: 400, maxHeight: 500)
}
.windowResizability(.contentSize)
}
}
由于視窗現在不能超過您設定的大小,因此它沒有資格成為全屏視窗,SwiftUI 會自動禁用選單中的選項。
經過一些實驗后,它似乎.windowResizability(.contentSize)需要一個小于螢屏的最大視圖大小——如果您提供的值大于當前螢屏解析度,則全屏選項將重新啟用。
您當然可以省略最大值,在這種情況下,視窗將是基于內容的固定大小。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/534961.html
標籤:迅速苹果系统迅捷
