Catalyst: ohne Netz, ohne Übersetzung, ohne Fenstergröße
Drei Fehler auf einmal, und alle drei meine. **Die App kam gar nicht ins Netz.** Ein Catalyst-Programm läuft in der Sandbox und braucht eine ausdrückliche Erlaubnis für ausgehende Verbindungen. Ohne sie gibt es keine Fehlermeldung — der Ladekreis dreht sich einfach für immer, und genau so sah es aus. **In der Seitenleiste standen Schlüssel statt Wörtern** — „sidebar.downloads" statt „Downloads". Ich hatte zwei Fassungen derselben Beschriftung gebaut, eine mit `LocalizedStringKey` und eine mit `String` für Titel, die vom Server kommen. Bei einem Literal darf Swift sich für beide entscheiden, und es entschied sich nicht überall gleich. Jetzt gibt es eine Fassung; wer einen fertigen Text hat, baut sein `Text` selbst. **Das Fenster öffnete wieder in Notizzettelgröße.** Meine Größenangabe hing an `os(macOS)` — unter Catalyst gilt aber `os(iOS)`, also griff sie nicht. Dort hängt die Größe ohnehin an der Szene, nicht am Fenster. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
f296d7ae1a
commit
39d9138911
+31
-1
@@ -70,9 +70,18 @@ struct FlixyApp: App {
|
||||
// Eine Untergrenze, unter der die Oberfläche nicht mehr
|
||||
// aufgeht: schmaler als das hier klappt die Seitenleiste zu
|
||||
// und die Reihen zeigen anderthalb Kacheln.
|
||||
#if os(macOS)
|
||||
//
|
||||
// `os(macOS)` allein reichte nicht — unter Catalyst gilt
|
||||
// `os(iOS)`, und genau deshalb öffnete das Fenster wieder in
|
||||
// Notizzettelgröße.
|
||||
#if os(macOS) || targetEnvironment(macCatalyst)
|
||||
.frame(minWidth: 900, minHeight: 620)
|
||||
#endif
|
||||
#if targetEnvironment(macCatalyst)
|
||||
// Unter Catalyst gibt es `defaultSize` nicht; die Größe hängt
|
||||
// an der Szene.
|
||||
.task { Self.widenWindow() }
|
||||
#endif
|
||||
.environment(session)
|
||||
.environment(playback)
|
||||
.environment(playbackSettings)
|
||||
@@ -123,6 +132,27 @@ struct FlixyApp: App {
|
||||
}
|
||||
|
||||
#if os(iOS)
|
||||
#if targetEnvironment(macCatalyst)
|
||||
extension FlixyApp {
|
||||
/// Gibt dem Fenster eine vernünftige Mindestgröße.
|
||||
///
|
||||
/// Unter Catalyst öffnet macOS sonst ein Fenster von der Größe eines
|
||||
/// Notizzettels — und darin fällt der Aufmacher in sich zusammen, weil
|
||||
/// seine Abstände dehnbar sind.
|
||||
@MainActor
|
||||
static func widenWindow() {
|
||||
for scene in UIApplication.shared.connectedScenes {
|
||||
guard let windowScene = scene as? UIWindowScene else { continue }
|
||||
windowScene.sizeRestrictions?.minimumSize = CGSize(width: 900, height: 620)
|
||||
windowScene.sizeRestrictions?.maximumSize = CGSize(
|
||||
width: CGFloat.greatestFiniteMagnitude,
|
||||
height: CGFloat.greatestFiniteMagnitude
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/// Der klassische App-Delegat, für das eine, was SwiftUI nicht abdeckt.
|
||||
@MainActor
|
||||
final class AppDelegate: NSObject, UIApplicationDelegate {
|
||||
|
||||
Reference in New Issue
Block a user