我有很多自定义视图。下面是一个最小的例子:
struct PairView: View {
let left: String
let right: String
var body: some View {
HStack(alignment: .firstTextBaseline) {
Text(left)
.foregroundColor(.black)
Text(right)
.foregroundColor(.gray)
}
}
}
在应用程序代码中,我有时会编写硬编码字符串,因此 Xcode 预计会自动将“1000”和“$”写入 Localized.xcstrings 中。这太棒了!
PairView(left: "1000", right: "$")
但是对于预览,我也有硬编码字符串,但它们是虚拟文本。不是真实的东西,我不希望它们出现在 Localized.xcstrings 文件中。
#Preview {
PairView(left: "nacho", right: "4d")
}
如何使 SwiftUI 预览中的字符串写入 Localized.xcstrings 无效?
我读到了有关逐字记录(例如:文本(逐字记录:“...”)的内容,但我找不到有关如何将其应用于自定义视图的信息。
在
verbatim
初始化器中使用 Text
参数。这可以防止 Xcode 将这些字符串视为需要本地化。但是,直接在自定义视图中应用 verbatim
方法可能并不简单,因为 verbatim
是 Text
视图的初始化参数,而不是所有视图的通用功能。
struct PreviewText: View {
var text: String
var body: some View {
Text(verbatim: text)
}
}
使用说明:
#Preview {
PairView(left: PreviewText(text: "nacho").text, right: PreviewText(text: "4d").text)
}