Hallo zusammen,
ich bin immer noch dabei meine erste App zu programmieren, ich versuche es zumindest.
Ich dachte mir, ich mach es gleich so, dass ich es evtl. wiederverwenden kann, also hab ich mich gleich an Packages ran gewagt.
Ich habe nun ein Package
z.B. einen Stepper für
Alles anzeigen
Dieses Package nutze ich nun in mehreren anderen Packages, z.B. einem
Hier ist nun wiederum die komplette View für die Konfiguration enthalten, die ich später in der App verwenden will.
Alles anzeigen
Funktioniert soweit auch ganz gut, ABER!
Die Auflösung der Localisation funktioniert nicht. Ich habe in meinem
Alles anzeigen
Die Auflösung über
Habt Ihr eine Idee wie ich das Lösen kann ohne die Werte alle als bereit lokalisierte Strings zu übergeben. (Geht nämlich nicht bei allen SwiftUI Komponenten).
Für diejenigen die keine SwiftUI Erfahrung haben, mann kann es genauso mit
ich bin immer noch dabei meine erste App zu programmieren, ich versuche es zumindest.
Ich dachte mir, ich mach es gleich so, dass ich es evtl. wiederverwenden kann, also hab ich mich gleich an Packages ran gewagt.
Ich habe nun ein Package
Utils
, das z.B. auch gleich für die App standardisierte GUI-Komponenten beinhaltet.z.B. einen Stepper für
BinaryInteger
anstatt Double
:Quellcode
- public struct PropertyStepper<T>: View where T: BinaryInteger {
- private var label: LocalizedStringKey
- private var property: Binding<T>
- private var min, max: T
- public var body: some View {
- let doubleValue = Binding<Double>(
- get: { Double(property.wrappedValue) },
- set: { property.wrappedValue = T($0) }
- )
- Stepper(value: doubleValue, in: Double(self.min) ... Double(self.max), step: 1.0) {
- HStack(spacing: .zero) {
- PropertyIcon("Int:\(self.property.wrappedValue)")
- PropertyLabel(self.label)
- }
- }
- }
- public init(label: LocalizedStringKey, property: Binding<T>, min: T, max: T) {
- self.label = label
- self.property = property
- self.min = min
- self.max = max
- }
- }
Dieses Package nutze ich nun in mehreren anderen Packages, z.B. einem
DisplayOptions
für die Konfiguration der Darstellungsoptionen in der App.Hier ist nun wiederum die komplette View für die Konfiguration enthalten, die ich später in der App verwenden will.
Quellcode
Die Auflösung der Localisation funktioniert nicht. Ich habe in meinem
PropertyLabel
:Quellcode
Die Auflösung über
bundle: .module
für die Werte die in Utils
enthalten sind, funktionieren wunderbar, die die in DisplayOptions
und für mein Verständnis über bundle: .main
aufgelöst werden sollten, funktionieren nicht.Habt Ihr eine Idee wie ich das Lösen kann ohne die Werte alle als bereit lokalisierte Strings zu übergeben. (Geht nämlich nicht bei allen SwiftUI Komponenten).
Für diejenigen die keine SwiftUI Erfahrung haben, mann kann es genauso mit
NSLocalizedString
testen, dass Ergebnis ist das Selbe.