SwiftUI:将视图的本地化字符串大写,例如“文字”?

时间:2019-08-20 12:20:47

标签: swiftui xcode11

使用Xcode beta 6和SwiftUI,使用> localized << / strong>字符串创建Text视图,我如何将其大写而不必使本地化的字符串值大写< / strong>?我想我想用ViewModifier来更改大小写,但是它似乎不存在吗?

Text("SignIn.Body.Instruction".uppercased())将大写本地化键 ,因此按照此SO question about uppercasing a non-localized string的说明,该键将无效。

3 个答案:

答案 0 :(得分:4)

如何为smallCaps使用Font修饰符?例如,Text("Hello World").font(Font.body.smallCaps())将呈现"HELLO WORLD",但是底层字符串将保留其适当的本地化大写字母,以实现可访问性。

答案 1 :(得分:3)

现在可以使用所有新的https://passingcuriosity.com/2013/dnsmasq-dev-osx/(Xcode 12 Beta 3),就像这样:

Text("SignIn.Body.Instruction")
    .textCase(.uppercase)

lowercase

Text("SignIn.Body.Instruction")
    .textCase(.lowercase)

答案 2 :(得分:0)

手动将其本地化,然后将其大写。

extension String {
    func toUpperCase() -> String {
        return localized.uppercased(with: .current)
    }
    private var localized : String {
        return NSLocalizedString( self, comment:"")
    }
}

Text("SignIn.Body.Instruction".toUpperCase())