亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

iPhone:以編程方式更改鍵盤語言

iPhone:以編程方式更改鍵盤語言

拉丁的傳說 2019-08-19 14:36:30
iPhone:以編程方式更改鍵盤語言我打算在打開本機鍵盤時在iOS 5.x應用程序上提供不同的語言支持。以編程方式在本機鍵盤中提供此語言。有人可以指導我,我該如何支持它?我看到了碳框架,但看起來像Mac應用程序。
查看完整描述

3 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

你可以從每個UIR應答器的iOS 7開始。UIResponder類中有textInputMode屬性。它是readonly,但文檔說:

文本輸入模式標識響應者處于活動狀態時顯示的語言和鍵盤。

對于響應者,系統通常顯示基于用戶語言首選項的鍵盤。您可以重新定義此屬性,并在您希望響應者使用特定鍵盤的情況下使用它來返回不同的文本輸入模式。用戶仍然可以在響應者處于活動狀態時更改鍵盤,但切換到另一個響應者然后返回還原您指定的鍵盤。

在我的項目中,我創建了一個子類,UITextField并定義了一個名為userDefinedKeyboardLanguage的新屬性。我也覆蓋了上面提到的textInputMode方法。它看起來類似于以下內容:

- (UITextInputMode *) textInputMode {
    for (UITextInputMode *tim in [UITextInputMode activeInputModes]) {
        if ([[Utilities langFromLocale:userDefinedKeyboardLanguage] isEqualToString:[Utilities langFromLocale:tim.primaryLanguage]]) return tim;
    }
    return [super textInputMode];}

我的Utilities類中還有一個自定義方法+(NSString *)langFromLocale:(NSString *)語言環境,如下所示:

+ (NSString *)langFromLocale:(NSString *)locale {
    NSRange r = [locale rangeOfString:@"_"];
    if (r.length == 0) r.location = locale.length;
    NSRange r2 = [locale rangeOfString:@"-"];
    if (r2.length == 0) r2.location = locale.length;
    return [[locale substringToIndex:MIN(r.location, r2.location)] lowercaseString];}

現在,我的自定義文本字段類可以通過將userDefinedKeyboardLanguage屬性設置為所需的語言來更改鍵盤輸入語言。


查看完整回答
反對 回復 2019-08-19
?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

我知道這是一個老問題,但這是我改變鍵盤語言的方法。

這種方式只能將當前鍵盤更改為在“設置”中添加的鍵盤。

斯威夫特3:

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    }}


查看完整回答
反對 回復 2019-08-19
  • 3 回答
  • 0 關注
  • 597 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號