Пользовательская клавиатура
Пользовательская клавиатура заменяет системную клавиатуру для пользователей, хотящих возможности, такие как новый метод ввода текста или возможность ввести текст на языке, не иначе поддерживаемом в iOS. Существенная функция пользовательской клавиатуры проста: Реагируйте на касания, жесты или другие входные события и обеспечьте текст в форме неприписанного NSString
объект, в точке вставки текста входного объекта текущего текста.
После того, как пользователь выбирает пользовательскую клавиатуру, это становится клавиатурой для каждого приложения, которое открывает пользователь. Поэтому клавиатура, которую Вы создаете в минимуме, должна обеспечить определенные основные функции. Самый важный, Ваша клавиатура должна позволить пользователю переключаться на другую клавиатуру.
Поймите пользовательские ожидания клавиатур
Для понимания, что пользователи ожидают пользовательской клавиатуры изучите системную клавиатуру — это является быстрым, быстро реагирующим, и способным. И это никогда не прерывает пользователя информацией или запросами. Если Вы обеспечиваете функции, требующие взаимодействия с пользователем, добавьте их не к клавиатуре, но на Вашу клавиатуру, содержащую приложение.
Функции клавиатуры, Которые Ожидают Пользователи iOS
Существует одна функция, которую пользователи iOS ожидают и что должна обеспечить каждая пользовательская клавиатура: способ переключиться на другую клавиатуру. На системной клавиатуре появляется эта подразумеваемая возможность, как кнопка вызвала ключ земного шара. iOS 8 обеспечивает определенный API для Вашей “следующей клавиатуры” управление, описанное в Обеспечении Способа Переключиться на Другую Клавиатуру.
Системная клавиатура представляет надлежащий набор ключей или расположение на основе UIKeyboardType
черта входного объекта текущего текста. С точкой вставки в К: поле в Почте, например, системных ключевых изменениях периода клавиатуры: Когда Вы нажимаете и удерживаете ту клавишу, можно выбрать из числа ряда доменных суффиксов верхнего уровня. Разработайте свою пользовательскую клавиатуру с чертами типа клавиатуры в памяти.
пользователи iOS также ожидают автокапитализацию: В стандартном текстовом поле автоматически капитализируется первая буква предложения на чувствительном к регистру языке.
Эти функции и другие перечислены затем.
Надлежащее расположение и функции на основе черты типа клавиатуры
Автоисправление и предложение
Автоматическая капитализация
Автоматический период на двойной интервал
Поддержка Caps Lock
Иллюстрации клавишного колпачка
Многоступенчатый ввод для идеографических языков
Можно решить, реализовать ли такие опции; существует не выделенный API для любой из функций, просто перечисленных, поэтому если их конкурентное преимущество.
Системные недоступные функции клавиатуры на пользовательские клавиатуры
Ваша пользовательская клавиатура не имеет доступа к большинству общих настроек клавиатуры в приложении Настроек (Настройки> Общий> Клавиатура), такие как Автокапитализация и Включает Caps Lock. И при этом Ваша клавиатура не имеет доступа к функции сброса словаря (Настройки> Общий> Сброс> Словарь Клавиатуры Сброса). Для предоставления пользовательской гибкости создайте стандартный пакет настроек, как описано в Реализации Пакета Настроек iOS в Руководстве по программированию Предпочтений и Настроек. Ваши пользовательские настройки тогда появляются в области Keyboard в Настройках, связанных с Вашей клавиатурой.
Существуют определенные объекты ввода текста, что Ваша пользовательская клавиатура не имеет право ввести в. Сначала любой безопасный объект ввода текста. Такой объект определяется secureTextEntry
свойство, устанавливаемое в YES
true
и отличен путем представления введенных символов как точек.
Когда пользователь касается в безопасном объекте ввода текста, система временно заменяет Вашу пользовательскую клавиатуру системной клавиатурой. Когда пользователь тогда касается в незащищенном объекте ввода текста, Ваша клавиатура автоматически возобновляется.
Ваша пользовательская клавиатура также не имеет права ввести в так называемые телефонные объекты клавиатуры, такие как поля телефонного номера в Контактах. Эти входные объекты исключительно для строк, созданных из маленького набора алфавитно-цифровых символов, указанных телекоммуникационными поставщиками услуг, и идентифицируются при наличии того или другой из следующих двух черт типа клавиатуры:
UIKeyboardTypePhonePad
UIKeyboardTypeNamePhonePad
Когда пользователь касается в телефонном объекте клавиатуры, система временно заменяет Вашу клавиатуру надлежащей, стандартной системной клавиатурой. Когда пользователь тогда касается в различном входном объекте, запрашивающем стандартную клавиатуру через ее черту типа, Ваша клавиатура автоматически возобновляется.
Разработчик приложений может выбрать отклонять использование всех пользовательских клавиатур в их приложении. Например, разработчик банковского приложения или разработчик приложения, которое должно соответствовать правилу конфиденциальности HIPAA в США, могли бы сделать это. Такое приложение использует application:shouldAllowExtensionPointIdentifier:
метод от UIApplicationDelegate
протокол (возвращающий значение NO
false
), и таким образом всегда использует системную клавиатуру.
Поскольку пользовательская клавиатура может нарисовать только в основном представлении UIInputViewController
объект, это не может выбрать текст. Текстовый выбор находится под контролем приложения, использующего клавиатуру. Если то приложение обеспечивает интерфейс меню редактирования (такой что касается Сокращения, Копии и Вставки), клавиатура не имеет никакого доступа к нему. Пользовательская клавиатура не может предложить встроенные средства управления автоисправлением около точки вставки.
Пользовательские клавиатуры, как все расширения приложения в iOS 8.0, не имеют никакого доступа к микрофону устройства, таким образом, ввод предписания не возможен.
Наконец, не возможно вывести на экран ключевые иллюстрации выше главного края основного представления пользовательской клавиатуры, как системная клавиатура делает на iPhone, когда Вы касаетесь и содержите ключ в верхнем ряду.
Быстрый запуск API для пользовательских клавиатур
Этот раздел проводит Вам быструю экскурсию по APIs для создания клавиатуры. Рисунок 11-1 показывает некоторые важные объекты в рабочей клавиатуре и куда они происходят из в типичном потоке операций разработки.
Пользовательская Накладка на клавиатуру (в iOS “целевая шаблонная группа” Расширения Приложения) содержит подкласс UIInputViewController
класс, служащий основным контроллером представления Вашей клавиатуры. Шаблон также включает базовое внедрение требуемой “следующей клавиатуры” кнопка, вызывающая advanceToNextInputMode
метод UIInputViewController
класс. Добавьте объекты, такие как представления, средства управления, и устройства распознавания жеста к вводу просматривают основное представление контроллера (в inputView
свойство), как предложено на рисунке 11-1. Как с другими расширениями приложения, нет никакого окна в цели, и, поэтому, никакого корневого контроллера представления по сути.
Шаблон Info.plist
файл прибывает предварительно сконфигурированный с минимальными значениями, необходимыми для клавиатуры. Посмотрите NSExtensionAttributes
ключ словаря в цели клавиатуры Info.plist
файл. Ключи для конфигурирования клавиатуры описаны в Конфигурировании файла Info.plist для Пользовательской Клавиатуры.
По умолчанию клавиатура не имеет никакого доступа к сети и не может совместно использовать контейнер с его содержанием приложения. Для включения этих вещей установите значение RequestsOpenAccess
Булевская переменная вводит Info.plist
файл к YES
true
. Выполнение этого разворачивает песочницу клавиатуры, как описано в Установлении и Поддержании Пользовательского Доверия.
Входной контроллер представления соответствует различным протоколам для взаимодействия с содержанием объекта ввода текста:
Чтобы вставить или удалить текст в ответ на сенсорные события, используйте
UIKeyInput
методы протоколаinsertText:
иdeleteBackward
. Вызовите эти методы на входном контроллере представленияtextDocumentProxy
свойство, представляющее входной объект текущего текста и соответствующееUITextDocumentProxy
протокол. Например:[self.textDocumentProxy insertText:@"hello "]; // Inserts the string "hello " at the insertion point
[self.textDocumentProxy deleteBackward]; // Deletes the character to the left of the insertion point
[self.textDocumentProxy insertText:@"\n"]; // In a text view, inserts a newline character at the insertion point
Для получения данных, необходимо определить, сколько текст является надлежащим для удаления, когда Вы вызываете
deleteBackward
метод, получите текстовый контекст около точки вставки отdocumentContextBeforeInput
свойствоtextDocumentProxy
свойство, следующим образом:NSString *precedingContext = self.textDocumentProxy.documentContextBeforeInput;
Можно тогда удалить надлежащий текст — например, отдельный символ или все назад к пробельному символу. Для удаления семантической единицей, такой как словом, предложение или абзац, использует функции, описанные в Ссылке CFStringTokenizer, и обращается к связанной документации. Обратите внимание на то, что каждый язык имеет свои собственные правила токенизации.
Управлять позицией точки вставки, например, для поддержки текстового удаления в прямом направлении, вызов
adjustTextPositionByCharacterOffset:
методUITextDocumentProxy
протокол. Например, для удаления вперед одним символом используйте код, подобный этому:- (void) deleteForward {
[self.textDocumentProxy adjustTextPositionByCharacterOffset: 1];
[self.textDocumentProxy deleteBackward];
}
Чтобы реагировать на изменения в содержании активного текстового объекта или реагировать на инициируемые пользователями изменения в позиции точки вставки, реализуют методы
UITextInputDelegate
протокол.
Для представления раскладки клавиатуры, надлежащей входному объекту текущего текста, реагируйте на объект UIKeyboardType
свойство. Для каждой черты Вы поддерживаете, изменяете содержание своего основного представления соответственно.
Для поддержки больше чем одного языка в пользовательской клавиатуре у Вас есть две опции:
Создайте одну клавиатуру на язык, каждый как отдельная цель, которую Вы добавляете к общему, содержащему приложение
Создайте единственную многоязычную клавиатуру, динамично переключив ее основной язык как надлежащий
Для динамичного переключения основного языка используйте
primaryLanguage
свойствоUIInputViewController
класс.
В зависимости от числа языков Вы хотите поддерживать, и пользовательский опыт, который Вы хотите обеспечить, выбирают опцию, имеющую большую часть смысла.
Каждая пользовательская клавиатура (независимый от значения RequestsOpenAccess
ключ), имеет доступ к основному словарю автоисправления через UILexicon
класс. Используйте этот класс, вместе со словарем Вашего собственного проекта, для обеспечения предложений и автоисправлений, поскольку пользователи вводят текст. UILexicon
объект содержит слова из различных источников, включая:
Непарные имена и фамилии от базы данных Address Book пользователя
Текстовые ярлыки, определенные в Настройках> Общий> Клавиатура> список Ярлыков
Словарь общих слов
Можно регулировать высоту основного представления пользовательской клавиатуры с помощью Автоматического Расположения. По умолчанию пользовательская клавиатура измерена для соответствия системной клавиатуры, согласно ориентации устройства и размеру экрана. Ширина пользовательской клавиатуры всегда устанавливается системой равняться текущему экрану width. Для регулирования высоты пользовательской клавиатуры измените ограничение высоты ее основного представления.
Следующие строки кода показывают, как Вы могли бы определить и добавить такое ограничение:
CGFloat _expandedHeight = 500;
NSLayoutConstraint *_heightConstraint = [NSLayoutConstraint constraintWithItem: self.view attribute: NSLayoutAttributeHeight relatedBy: NSLayoutRelationEqual toItem: nil attribute: NSLayoutAttributeNotAnAttribute multiplier: 0.0 constant: _expandedHeight];
[self.view addConstraint: _heightConstraint];
Основы разработки для пользовательских клавиатур
Существует две основы разработки для каждой пользовательской клавиатуры:
Доверие. Ваша пользовательская клавиатура предоставляет Вам доступ к тому, что вводит пользователь, таким образом, доверие между Вами и Вашим пользователем важно.
“Следующая клавиатура” ключ. Подразумеваемая возможность, позволяющая пользователю переключиться на другую клавиатуру, является частью пользовательского интерфейса клавиатуры; необходимо обеспечить один в клавиатуре.
Разработка для пользовательского доверия
Ваше первое рассмотрение при создании пользовательской клавиатуры должно состоять в том, как Вы установите и поддержите пользовательское доверие. Это доверие зависит от Вашего понимания методов наиболее успешной практики конфиденциальности и знания, как реализовать их.
Для клавиатур следующие три области особенно важны для установления и поддержания пользовательского доверия:
Безопасность данных нажатия клавиши. Пользователи хотят, чтобы их нажатия клавиш перешли к документу или текстовому полю, которое они вводят в, а не архивироваться на сервере или использоваться в целях, которые не очевидны для них.
Надлежащее и минимизируемое использование других пользовательских данных. Если Ваша клавиатура использует другие пользовательские данные, такой как от Служб определения местоположения или базы данных Address Book, нагрузка находится на Вас, чтобы объяснить и продемонстрировать преимущество Вашим пользователям.
Точность. Точность в преобразовании входных событий к тексту не является проблемой конфиденциальности по сути, но это влияет на доверие: С каждым введенным словом пользователи видят точность Вашего кода.
Для разработки для доверия сначала рассмотрите, запросить ли открытый доступ. Несмотря на то, что открытый доступ делает много вещей возможными для пользовательской клавиатуры, он также увеличивает Вашу ответственность (см. Таблицу 11-1).
Открытый доступ |
Возможности и ограничения |
Соображения конфиденциальности |
---|---|---|
От (значения по умолчанию) |
|
|
На |
|
|
При создании клавиатуры без открытого доступа система гарантирует, что нажатия клавиш нельзя передать обратно Вам или больше нигде. Используйте несетевую клавиатуру, если Ваша цель состоит в том, чтобы обеспечить нормальную функциональность клавиатуры. Из-за ее ограниченной песочницы несетевая клавиатура дает Вам преимущество на соблюдении инструкций по конфиденциальности данных Apple и в получении пользовательского доверия.
Если Вы включаете открытый доступ (как описано Конфигурирование файла Info.plist для Пользовательской Клавиатуры), множество возможностей открываются, но Ваше увеличение ответственности также.
Каждая возможность клавиатуры, связанная с открытым доступом, переносит ответственность с Вашей стороны в качестве разработчика, как обозначено в Таблице 11-2. В целом обработайте пользовательские данные с самым большим уважением и не используйте его ни в какой цели, которая не очевидна для пользователя.
Возможность |
Пользовательское преимущество в качестве примера |
Ответственность разработчика |
---|---|---|
Совместно используемый контейнер с содержанием приложения |
Управление UI для словаря автозамены клавиатуры |
Полагайте, что словарь автозамены данные частного пользователя. Не отправляйте его в свои серверы ни в какой цели, которая не очевидна для пользователя. |
Отправка данных нажатия клавиши к серверу |
Улучшенный прогноз сенсорной обработки событий и ввода через вычислительные ресурсы разработчика |
Не храните полученное нажатие клавиши или речевую информацию кроме предоставить услуги, которые очевидны для пользователя. |
Динамический словарь автозамены на основе сети снабдил данными |
Имена людей, мест и текущих событий в новостях добавили к словарю автоисправления |
Не связывайте идентификационные данные пользователя с их использованием анализа трендов или другой основанной на сети информации ни по какой причине, которая не очевидна для пользователя. |
Доступ Адресной книги |
Имена, места и телефонные номера, относящиеся к пользователю, добавили к словарю автоисправления |
Не используйте данные Адресной книги ни в какой цели, которая не очевидна для пользователя. |
Доступ Служб определения местоположения |
Соседние названия места добавили к словарю автоисправления |
Не используйте Службы определения местоположения в фоновом режиме. Не отправляйте данные расположения в свои серверы ни в какой цели, которая не очевидна для пользователя. |
Клавиатура открытого доступа и ее содержание приложения могут отправить данные нажатия клавиши в Ваш сервер, позволяющий Вам применить свои вычислительные ресурсы к таким функциям как сенсорная обработка событий и ввести прогноз. При использовании этой возможности не храните полученное нажатие клавиши, или речевая информация вне времени должна была предоставить текст назад пользователю или обеспечить функции, которые Вы объясняете пользователю. Обратитесь к Таблице 11-2 для дополнительной ответственности, которую Вы имеете при использовании возможностей клавиатуры открытого доступа.
Обеспечение способа переключиться на другую клавиатуру
Когда больше чем одна клавиатура включена, системный ключ земного шара клавиатуры позволяет пользователю выбрать клавиатуру. Посмотрите рисунок 11-2.
Ваша пользовательская клавиатура должна также обеспечить способ переключиться на другую клавиатуру.
Чтобы попросить, чтобы система переключилась на другую клавиатуру, вызовите advanceToNextInputMode
метод UIInputViewController
класс. Система выбирает надлежащую «следующую» клавиатуру; нет никакого API для получения списка включенных клавиатур или для выбора определенной клавиатуры для переключения на.
XCode Пользовательская Накладка на клавиатуру включает advanceToNextInputMode
метод как действие его кнопки Next Keyboard. Для лучшего пользовательского опыта поместите свое управление следующей клавиатуры близко к тому же расположению на экране как системный ключ земного шара клавиатуры.
Начало работы с пользовательской разработкой клавиатуры
В этом разделе Вы изучаете, как создать пользовательскую клавиатуру, сконфигурировать ее согласно Вашим целям и выполнить ее в Средстве моделирования iOS или на устройстве. Вы будете также учиться о некоторых факторах UI принимать во внимание при замене системной клавиатуры.
Используя XCode пользовательская накладка на клавиатуру
Шаги для создания клавиатуры и ее содержания приложения отличаются немного от тех для других расширений приложения. Этот раздел обходит Вас посредством подъема основной клавиатуры и выполнения.
Создать пользовательскую клавиатуру в содержании приложения
В XCode выберите File> New>, Project, и в шаблонной группе приложения для iOS выбирает Single View Application template.
Нажать Далее.
Назовите проект (например, «ContainingAppForKeyboard»), затем нажмите Далее.
Перейдите к расположению, Вы хотите сохранить проект в, затем нажать Create.
В этой точке у Вас есть пустое приложение для Вашего проекта служить простой роли, на данный момент, содержания цели клавиатуры. Перед представлением содержания приложения App Store оно должно выполнить некоторую полезную функцию. См. Инструкции по Анализу App Store, соединенные от Страницы поддержки Анализа Приложения Apple.
Выберите File> New> Target, и в iOS “целевая шаблонная группа” Расширения Приложения выбирает Custom Keyboard template, затем нажимает Далее.
Назовите цель, поскольку Вы хотели бы, чтобы имя клавиатуры появилось в пользовательском интерфейсе iOS (например, Пользовательская Клавиатура).
Гарантируйте, чтобы Проект и “Встроил в Приложение” всплывающие меню, выводят на экран имя содержания приложения, затем нажимают Finish.
Если Вам предлагают активировать схему новой цели клавиатуры, нажмите Activate.
Можно теперь дополнительно настроить название группы клавиатуры, как это появляется в Купленном списке Клавиатур в Настройках, как описано затем.
Настроить название группы клавиатуры
В навигаторе проекта XCode выберите содержание приложения
Info.plist
файл, расположенный в папке Supporting Files приложения. Редактор списка свойств открывается, показывая содержание файла.Парение курсор по “Строке” имени пакета, затем щелкните «+» появляющаяся кнопка. Это создает новую, пустую строку списка свойств и выбирает ее Поле ключа.
Начните вводить
Bundle display name
и когда имя автоматически заполняет, нажмите Return.Дважды щелкните в поле Value в той же строке, чтобы получить курсор там, затем ввести название группы клавиатуры, которое Вы хотите.
Выберите File> Save для сохранения изменений в файле списка свойств.
Таблица, 11-3summarizes, UI представляет в виде строки для Вашей пользовательской клавиатуры, которую можно сконфигурировать в Info.plist
файлы для клавиатуры и ее содержания приложения.
текст пользовательского интерфейса iOS |
|
---|---|
|
Дисплей пакета называет в содержании приложения |
|
Дисплей пакета называет в пользовательской цели клавиатуры |
Теперь можно выполнить основанную на шаблоне клавиатуру в Средстве моделирования iOS, или на устройстве, для исследования его поведения и возможностей.
Выполнить пользовательскую клавиатуру и присоединить отладчик XCode
В XCode, набор точка останова в Вашей реализации контроллера представления.
Например, установите точку останова в
viewDidLoad
метод.Используйте панель инструментов Xcode, чтобы гарантировать, что активное всплывающее меню схемы указывает схему клавиатуры и Средство моделирования iOS или подключенное устройство.
Выберите Product> Run или щелкните по кнопке воспроизведения по верхнему левому из окна проекта XCode.
XCode предлагает Вам выбирать приложение узла. Выберите приложение с легко доступным текстовым полем, таким как Контакты или Safari.
Нажмите Run.
XCode выполняет Ваше указанное приложение узла. Если это - Ваш первый раз, развертывая Ваше расширение клавиатуры Средства моделирования iOS или устройства, используйте Настройки, чтобы добавить и включить клавиатуру, следующим образом:
Перейдите к Настройкам> Общий> Клавиатура> Клавиатуры.
Касание добавляет новую клавиатуру.
В Купленной группе Клавиатур коснитесь имени своей новой клавиатуры. Модальное представление, кажется, с переключателем включает Вашу клавиатуру.
Коснитесь переключателя для включения клавиатуры. Предупреждение предупреждения появляется.
На предупреждении предупреждения касание Добавляет Клавиатуру, чтобы закончить включать Вашу новую клавиатуру. Тогда коснитесь Сделанный.
В Средстве моделирования iOS или на подключенном устройстве, вызовите свою пользовательскую клавиатуру.
Чтобы сделать это, коснитесь для размещения точки вставки в текстовое поле — в любом приложении, или в поле Spotlight в Трамплине — для отображения системной клавиатуры. Тогда нажмите и удержите клавишу земного шара и выберите свою пользовательскую клавиатуру.
Теперь можно исследовать поведение пользовательской клавиатуры, но еще не присоединяется отладчик. Базовая клавиатура, созданная из шаблона, имеет только одно поведение, обозначенное его кнопкой Next Keyboard: разрешение Вам переключиться назад на ранее используемую клавиатуру.
Перед продолжением гарантируйте, что Ваша пользовательская клавиатура активна.
Отклоните свою клавиатуру (так, чтобы на шаге 8 можно было совершить нападки
viewDidLoad
точка останова путем нового вызова клавиатуры).В XCode выберите Debug> Attach to Process> By Process Identifier (PID) или Name.
В листе, появляющемся, введите имя своего расширения клавиатуры (включая пробелы), когда Вы указали его при создании его. По умолчанию это - имя для группы расширения приложения в навигаторе проекта.
Нажмите Attach.
XCode указывает в навигаторе Отладки, что ожидает для присоединения.
В любом приложении в Средстве моделирования iOS или устройстве (в зависимости от которого Вы используете), вызовите клавиатуру путем ответвления в текстовом поле.
Поскольку основное представление Вашей клавиатуры начинает загружаться, отладчик XCode присоединяет к Вашей клавиатуре, и XCode поражает Вашу точку останова.
Конфигурирование файла Info.plist для Пользовательской Клавиатуры
Информационный список свойств (Info.plist
файл) ключи, которые являются определенными для пользовательской клавиатуры, позволяют Вам статически объявить существенные характеристики своей клавиатуры, включая ее основной язык и требует ли это открытого доступа.
Для исследования этих ключей откройте проект Xcode, к которому Вы добавили Пользовательский целевой шаблон Клавиатуры. Теперь выберите Info.plist
файл в навигаторе Проекта ( Info.plist
файл находится в папке Supporting Files для цели клавиатуры).
В форме исходного текста ключи для пользовательской клавиатуры следующие:
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>IsASCIICapable</key>
<false/>
<key>PrefersRightToLeft</key>
<false/>
<key>PrimaryLanguage</key>
<string>en-US</string>
<key>RequestsOpenAccess</key>
<false/>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.keyboard-service</string>
<key>NSExtensionPrincipalClass</key>
<string>KeyboardViewController</string>
</dict>
Каждый из этих ключей объяснен в Ключах Расширения Приложения. Используйте ключи NSExtensionAttributes
словарь для выражения характеристик и потребностей пользовательской клавиатуры, следующим образом:
IsASCIICapable
— Это булево значение, NO
false
по умолчанию, экспрессы, может ли пользовательская клавиатура вставить строки ASCII в документ. Установите это значение в YES
true
если Вы обеспечиваете тип клавиатуры в частности для UIKeyboardTypeASCIICapable
черта типа клавиатуры.
PrefersRightToLeft
— Это булево значение, также NO
false
по умолчанию, экспрессы, является ли пользовательская клавиатура для справа налево язык. Установите это значение в YES
true
если основной язык Вашей клавиатуры справа налево.
PrimaryLanguage
— Это строковое значение, en-US
(Английский язык для США) по умолчанию, выражает основной язык для Вашей клавиатуры с помощью образца <language>-<REGION>
. Можно найти список строк, соответствующих языкам и областям в http://www .opensource.apple.com/source/CF/CF-476.14/CFLocaleIdentifier.c.
RequestsOpenAccess
— Это булево значение, NO
false
по умолчанию, экспрессы, хочет ли пользовательская клавиатура увеличить свою песочницу, кроме того необходимую для основной клавиатуры. Если Вы запрашиваете открытый доступ путем установки значения этого ключа в YES
true
, Ваша клавиатура получает следующие возможности, каждого с сопутствующей ответственностью с точки зрения пользовательского доверия:
Доступ к Службам определения местоположения, базе данных Address Book, и Рулону Камеры, каждым полномочиям пользователя требования на первом доступе
Опция использовать совместно используемый контейнер с клавиатурой, содержащей приложение, активирующее опции, такие как обеспечение пользовательского управления словарем UI в содержании приложения
Возможность отправить нажатия клавиш, другие входные события и данные по сети для обработки серверной стороны
Возможность использовать
UIPasteboard
классВозможность играть аудио, включая щелчки клавиатуры с помощью
playInputClick
методДоступ к iCloud, который можно использовать, например, чтобы гарантировать, что настройки клавиатуры и пользовательский словарь автозамены актуальны на всех устройствах, принадлежавших пользователю
Доступ к Игре Центральная и Закупка В приложении, через содержание приложения
Возможность работать с управляемыми приложениями, если Вы разрабатываете свою клавиатуру для поддержки управления мобильными устройствами (MDM)
При рассмотрении, установить ли RequestsOpenAccess
значение ключа к YES
true
, обязательно считайте Разработку для Пользовательского Доверия, описывающего Ваши обязанности по уважению и защите пользовательских данных.