Добавление клавиши на клавиатуру iPad

В настоящее время я работаю над приложением для iPad, мой клиент хочет добавить функциональные клавиши, как на обычной клавиатуре, поверх клавиатуры, что я и сделал. Проблема в том, что ему нужна клавиша «Fn» на системной клавиатуре iPad, которая будет отображать функциональные клавиши при нажатии.

Возможно ли это без побега из тюрьмы? как он прислал мне несколько фотографий, где это делается ... но я много гуглил, но не смог найти ни одного документа Apple, в котором говорится, что «приложение будет отклонено, если оно будет мешать системной клавиатуре или что-то в этом роде»..

Любые указатели на то, как добавить клавишу Fn на клавиатуру или что-то, что я могу показать, чтобы убедить его, очень ценятся.

РЕДАКТИРОВАТЬ: решение для добавления, но только если вы хотите узнать, как вы можете это сделать. НО ЭТО НЕ ТО, ЧТО ВЫ ДОЛЖНЫ СДЕЛАТЬ ДЛЯ НАСТОЯЩЕГО ПРИЛОЖЕНИЯ

Перейдите по этой ссылке, чтобы найти слой KEYBOARD на iPad ПРИМЕЧАНИЕ: вам нужно проверить UIPeripheralHostView на iPad, UIKeyboard работает на iPhone.

После этого последнего условия if, в котором вы найдете UIPeripheralHostView, добавьте еще один цикл для его подвидов и проверьте условие для UIKeyboardAutomatic

После того, как это будет сделано ... вам нужно сделать рекурсивный вызов, как это делает iOS, для выполнения HitTest CGPoint может быть чем угодно в зависимости от того, где вы хотите добавить ключ, в моем случае это как CGPoint (50 290) для нижнего правого ключа.

поэтому продолжайте зацикливаться на подпредставлениях при преобразовании вашей CGPoint в локальную систему координат родительского представления (вы можете начать с родительского представления nil после того, как будет найден UIKeyboardAutomatic.

Окончательное условие возврата - если ваше представление относится к классу UIKBKeyView и может реагировать на вашу точку hitTest. у вас есть ключевое представление и его родитель.. теперь добавьте все, что хотите добавить...


person Kamal    schedule 06.04.2012    source источник


Ответы (1)


Приложение Wolfram Alpha сделало нечто подобное. Когда отображается клавиатура, они добавляют собственное представление прямо над ней. Они используют -inputAccessoryView. См. https://developer.apple.com/library/ios/#documentation/uikit/reference/UITextView_Class/Reference/UITextView.html для получения дополнительной информации.

Также можно полностью заменить клавиатуру на -inputView.

person StilesCrisis    schedule 06.04.2012
comment
Wolfram Alpha не нуждался в джейлбрейке, он есть в App Store. Если вы имеете в виду, что вам нужны доказательства того, что вы не можете изменить часть клавиатуры Apple, я не знаю, где я могу найти это, но я никогда не видел ни одного приложения, которое модифицировало клавиатуру. Я просто не думаю, что API существует. - person StilesCrisis; 07.04.2012
comment
Добавлены ссылки на документацию для -inputAccessoryView. - person StilesCrisis; 07.04.2012
comment
я сделал то же самое. он хочет, чтобы я поместил клавишу Fn внизу рядом с пробелом или клавишу !123.. я ищу какую-то ссылку от Apple.. чтобы убедить его.. - person Kamal; 07.04.2012
comment
я нашел способ поместить клавишу «Fn» внизу внутри клавиатуры и сдвинуть клавишу ?! 123 также, чтобы освободить место ... но я не знаю, насколько хороша идея ... выложу код утром ... - person Kamal; 09.04.2012
comment
Да? Я умираю, чтобы увидеть, как. Убедитесь, что вы также протестировали его с несколькими включенными клавиатурами (например, включите эмодзи или китайскую клавиатуру). - person StilesCrisis; 09.04.2012
comment
извините, что разочаровываю вас .. у меня это работает на обычной алфавитной клавиатуре .. но это не постоянное решение .. мой друг предложил мне, как это сделать .. это было просто показать моему клиенту, что это возможно .. но это не на все хорошо, чтобы сделать это. - person Kamal; 10.04.2012
comment
Насколько хорошо это работает, если вы перетаскиваете клавиатуру вверх по экрану (в разделенный режим)? - person StilesCrisis; 10.04.2012
comment
он не работает в режиме разделения клавиатуры, но будет работать, если вы просто отсоедините его.. так как разделение снова вызывает полную раскладку клавиатуры, а отстыковка - нет, и мы добавили клавишу, когда она была закреплена.. - person Kamal; 10.04.2012
comment
Клавиатура может появиться в разделенном режиме, если пользователь разделил ее ранее. Моя клавиатура обычно находится в режиме разделения. - person StilesCrisis; 10.04.2012
comment
вы также можете разделить работу для iOS 5, так как вы можете использовать keydidshownotification ... но в последней версии 5.0.1 или любой другой обновленной версии ... клавиатура не отправляет это уведомление ... поэтому оно не будет работать. :( - person Kamal; 10.04.2012