在 SwiftUI 中更改键盘语言

Change the keyboard language in SwiftUI

如何在 swiftUI 中更改键盘语言。 uikit 属性 也可以。 我试过这个:

public extension UITextField 
{ 
    // ⚠️ Prefer english keyboards
    //
    override var textInputMode: UITextInputMode?
    {
        let locale = Locale(identifier: "en_US") // your preferred locale

        return
            UITextInputMode.activeInputModes.first(where: { [=10=].primaryLanguage == locale.languageCode })
            ??
            super.textInputMode
    }
}

但是不行。

我观察到 UITextInputMode.primaryLanguage 在语言环境字符串中使用 - 而不是 _。因此,如果您将语言环境创建为 Locale(identifier: "en-US") 而不是 Locale(identifier: "en_US"),则 UITextInputMode.primaryLanguagelocale.identifier 具有相同的格式 en-US.

public extension UITextField
{
    override var textInputMode: UITextInputMode?
    {
        let locale = Locale(identifier: "en-US")
        
        return
            UITextInputMode.activeInputModes.first(where: { [=10=].primaryLanguage == locale.identifier })
            ??
            super.textInputMode
    }
}