如何以编程方式检查iPhone上安装了哪些国际键盘?

4

我正在开发一个应用程序,用户可以使用多种语言搜索数据库。我想知道他的设备上安装了哪些键盘,如果没有特定的键盘,我可以显示一个弹出窗口并告诉他如何安装它。

1个回答

9

您可以在NSUserDefaults中找到它:

NSDictionary* defaults = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];

我在iOS模拟器上测试了它(iOS 5.0)。我只安装了美式键盘。defaults的内容如下:
AppleITunesStoreItemKinds =     (
        eBook,
        document,
        "software-update",
        booklet,
        "itunes-u",
        newsstand,
        artist,
        podcast,
        "podcast-episode",
        software
    );
    AppleLanguages =     (
        en,
        fr,
        de,
        ja,
        nl,
        it,
        es,
        pt,
        "pt-PT",
        da,
        fi,
        nb,
        sv,
        ko,
        "zh-Hans",
        "zh-Hant",
        ru,
        pl,
        tr,
        uk,
        ar,
        hr,
        cs,
        el,
        he,
        ro,
        sk,
        th,
        id,
        ms,
        "en-GB",
        ca,
        hu,
        vi
    );
    AppleLocale = "en_US";
    NSInterfaceStyle = macintosh;
    NSLanguages =     (
        en,
        fr,
        de,
        ja,
        nl,
        it,
        es,
        pt,
        "pt-PT",
        da,
        fi,
        nb,
        sv,
        ko,
        "zh-Hans",
        "zh-Hant",
        ru,
        pl,
        tr,
        uk,
        ar,
        hr,
        cs,
        el,
        he,
        ro,
        sk,
        th,
        id,
        ms,
        "en-GB",
        ca,
        hu,
        vi
    );
}

然后我添加了俄语键盘,NSUserDefaults的内容变为:
{
    AppleITunesStoreItemKinds =     (
        eBook,
        document,
        "software-update",
        booklet,
        "itunes-u",
        newsstand,
        artist,
        podcast,
        "podcast-episode",
        software
    );
    AppleKeyboards =     (
        "en_US@hw=US;sw=QWERTY",
        "ru_RU@hw=Russian;sw=Russian"
    );
    AppleKeyboardsExpanded = 1;
    AppleLanguages =     (
        en,
        fr,
        de,
        ja,
        nl,
        it,
        es,
        pt,
        "pt-PT",
        da,
        fi,
        nb,
        sv,
        ko,
        "zh-Hans",
        "zh-Hant",
        ru,
        pl,
        tr,
        uk,
        ar,
        hr,
        cs,
        el,
        he,
        ro,
        sk,
        th,
        id,
        ms,
        "en-GB",
        ca,
        hu,
        vi
    );
    AppleLocale = "en_US";
    NSInterfaceStyle = macintosh;
    NSLanguages =     (
        en,
        fr,
        de,
        ja,
        nl,
        it,
        es,
        pt,
        "pt-PT",
        da,
        fi,
        nb,
        sv,
        ko,
        "zh-Hans",
        "zh-Hant",
        ru,
        pl,
        tr,
        uk,
        ar,
        hr,
        cs,
        el,
        he,
        ro,
        sk,
        th,
        id,
        ms,
        "en-GB",
        ca,
        hu,
        vi
    );
}

所以,您需要使用 AppleKeyboardsAppleKeyboardsExpanded 键。

非常感谢你,Aliaksandr,它完成了任务,有趣的是我在其他地方找不到它。 - Gilad Kedmi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接