Пользовательская клавиатура iOS 8

Я пытаюсь создать пользовательскую клавиатуру, как клавиатуру emoji, но данные клавиатуры - из json файла. После анализа этого json файла и получения данных, как заставить пользовательскую клавиатуру использовать его и показать в виде клавиатуры, например, встроенную клавиатуру emoji? Прямо сейчас я следую за клавиатурой расширения приложения: руководство по пользовательской клавиатуре, и здесь есть только небольшие фрагменты информации. Есть ли учебник или руководство о том, как создать пользовательскую клавиатуру emoji онлайн? Текущие коды, которые я пытаюсь сделать, приведены ниже:

class KeyboardViewController: UIInputViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        var error: NSError?
        let yanFile = NSBundle.mainBundle().pathForResource("yan", ofType: "json")
        let yanData = NSData(contentsOfFile: yanFile) as NSData
        let yanDict = NSJSONSerialization.JSONObjectWithData(yanData, options: NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary
        println("dict: \(yanDict)") //print nothing in console

        // Perform custom UI setup here
        self.nextKeyboardButton = UIButton.buttonWithType(.System) as UIButton

        self.nextKeyboardButton.setTitle(NSLocalizedString("Next Keyboard", comment: "Title for 'Next Keyboard' button"), forState: .Normal)

    }
}

Json, как показано ниже:

{
    "list": 
    [
        {
            "tag": "laugh",
            "yan": 
            [
                "o(*≧▽≦)ツ┏━┓",
                "(/≥▽≤/)",
                "ヾ(o◕∀◕)ノ"
            ]
        },
        {
            "tag": "wanna",
            "yan": 
            [
                "✪ω✪",
                "╰(*°▽°*)╯",
                "≖‿≖✧",
                ">ㅂ<",
                "ˋ▽ˊ",
                "✪ε✪",
                "✪υ✪",
                "ヾ (o ° ω ° O ) ノ゙",
                "(。◕ˇ∀ˇ◕)",
                "(¯﹃¯)"
            ]
        }
    ]
}

Ответ 1

Вы можете создать xib файл, щелкнув новый файл → view

1) внутри xib файла создайте uiview 320x216, и вы можете перетащить все элементы управления, которые вы хотите в него

2), тогда вы можете загрузить такой же нить в свою клавиатуру inputView:

// Perform custom UI setup here
UIView *layout = [[[NSBundle mainBundle] loadNibNamed:@"keyboardXib" owner:self options:nil] objectAtIndex:0];
[self.inputView addSubview:layout];

3) Я считаю, что это потрясающе, если вы создаете JSON для клавиатуры api вы отправляете JSON карты клавиатуры в свое приложение и приложение знает, как организовать ключи на inputView соответственно

сообщите нам, если вы построите этот проект!

EDIT:

4). Большинство из того, что вам нужно сделать, - это разобрать JSON и отобразить контент, который вы хотите, из UIButtons JSON, а также решить, какой текст они вставляют в текстовое поле

проверить этот вопрос: Как выполнить синтаксический анализ JSON файла в формате <

Удачи!

Ответ 2

Прежде всего, вам нужно создать свой интерфейс для клавиатуры в KeyboardViewController. Это зависит от вас, как вы его настраиваете, добавляете кнопки, виды, жесты и т.д. (Кстати, высота просмотра ограничена, стандартная высота клавиатуры, поэтому не пытайтесь сделать ее выше, она не будет рисоваться) Шаблон который сгенерирован как образец, чтобы показать, как вы можете поместить в него одну кнопку. После настройки пользовательского интерфейса убедитесь, что у вас есть Следующая клавиша клавиатуры.

Что касается Emoji, это не реальные изображения, они всего лишь символы юникода, которые позже заменяются изображениями с помощью системы. Таким образом, вы не можете передавать изображения, единственный вход, который вы можете предоставить, - NSString [self.textDocumentProxy insertText:@"hello "]; // Inserts the string "hello " at the insertion point

Более подробную информацию можно найти здесь https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/Keyboard.html.