在下面的代码中,我只想在# .windowResizability ( macOS 13.0,*) == true或@ available(macOS 13.0,*)下使用它,因为它在macOS 13下不可用。
//
// Test_HowAviableApp.swift
// Test HowAviable
//
// Created by Sebastien REMY on 03/11/2022.
//
import SwiftUI
import UniformTypeIdentifiers
@main
struct Test_HowAviableApp: App {
var body: some Scene {
DocumentGroup(newDocument: MyDocument()) { file in
MyView(document: file.$document)
}
// @available(macOS 13.0, *) // <- DOESN'T WORK!
//.windowResizability(.contentSize) // Only for macOs 13+
}
}
struct MyDocument: FileDocument, Codable {
static var readableContentTypes = [UTType(exportedAs:"com.test.test")]
var test = "test"
init() {
}
init(configuration: ReadConfiguration) throws {
if let data = configuration.file.regularFileContents {
self = try JSONDecoder().decode(MyDocument.self, from: data)
}
}
func fileWrapper(configuration: WriteConfiguration) throws -> FileWrapper {
let data = try JSONEncoder().encode(self)
return FileWrapper(regularFileWithContents: data)
}
}
struct MyView: View {
@Binding var document: MyDocument
var body: some View {
Text("Hello")
}
}发布于 2022-11-03 09:19:12
在单个表达式的情况下,只能删除return。
试试这个:
struct MacDemoApp: App {
var body: some Scene {
if #available(macOS 13, *) {
return DocumentGroup(newDocument: MyDocument()) { file in
ContentView(document: file.$document)
}.windowResizability(.contentSize)
} else {
return DocumentGroup(newDocument: MyDocument()) { file in
ContentView(document: file.$document)
}
}
}
}发布于 2022-11-03 08:37:41
只要用if语句包装就可以了
if #available(macOS 13, *) {
.windowResizability(.contentSize)
}https://stackoverflow.com/questions/74300019
复制相似问题