Пользовательская клавиатура 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.