首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >iPhone:以编程方式更改键盘语言

iPhone:以编程方式更改键盘语言
EN

Stack Overflow用户
提问于 2012-09-26 14:42:40
回答 5查看 31.9K关注 0票数 42

每当打开本机键盘时,我都会尝试在我的iOS 5.x应用程序上提供不同的语言支持。以编程方式在本机键盘中提供此语言。有人能指导我怎样才能支持它吗?我看到了一个carbon框架,但看起来像是针对Mac应用程序的。

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-09-26 14:45:09

不,这是不可能的-用户只能在设置中更改他们的语言。

但是,如果您选择(或询问他们的喜好),您可以给用户一个“英语”键盘。

您可以使用以下命令执行此操作:UIKeyboardTypeASCIICapable

您可以通过按下最下面一行上的"globe icon“直接在键盘上更改键盘。

首先,您必须在设置中启用这些语言以进行输入。然后按下键盘上的globe键就可以在这些语言之间切换。

票数 6
EN

Stack Overflow用户

发布于 2017-04-26 21:46:17

我知道这是一个老问题,但这是我改变键盘语言的方法。

感谢@the4kman的标记:这种方式只能将当前的键盘更改为那些在设置中添加的键盘。

Swift 3:

代码语言:javascript
复制
class CustomTextField: UITextField {

    private func getKeyboardLanguage() -> String? {
        return "en" // here you can choose keyboard any way you need
    }

    override var textInputMode: UITextInputMode? {
        if let language = getKeyboardLanguage() {
            for tim in UITextInputMode.activeInputModes {
                if tim.primaryLanguage!.contains(language) {
                    return tim
                }
            }
        }
        return super.textInputMode
    }

}
票数 41
EN

Stack Overflow用户

发布于 2018-06-04 22:17:01

声明:

代码语言:javascript
复制
@IBOutlet var yourTextField:cTextField!;

使用:

代码语言:javascript
复制
yourTextField.languageCode = "ru";

cTextField类:

代码语言:javascript
复制
class cTextField: UITextField {

    // ru, en, ....
    var languageCode:String?{
        didSet{
            if self.isFirstResponder{
                self.resignFirstResponder();
                self.becomeFirstResponder();
            }
        }
    }

    override var textInputMode: UITextInputMode?{
        if let language_code = self.languageCode{
            for keyboard in UITextInputMode.activeInputModes{
                if let language = keyboard.primaryLanguage{
                    let locale = Locale.init(identifier: language);
                    if locale.languageCode == language_code{
                        return keyboard;
                    }
                }
            }
        }
        return super.textInputMode;
    }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12595970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档