В симуляторе, если у меня было UITextField
, установленное на Безопасный (с отключенным автозаполнением, хотя это должно быть по умолчанию), я никогда не видел текст, набранный в ~ /Library/Application Support/iPhone Simulator/User/Library/Keyboard/dynamic-text.dat
, хотя UITextField
для параметра автозаполнения текст в итоге оказался там.
Если я отключил автокоррекцию на ранее захваченном поле, я не увидел больше записей, которые я набрал, в этом файле.
Я попробовал это как на симуляторе, так и на устройстве - на устройстве я запустил свое тестовое приложение с защищенным и незащищенным текстовым полем (где я попеременно включал и выключал автокоррекцию), а затем использовал SpyPhone для проверки кеш клавиатуры. Опять же, во всех случаях, когда текстовое поле было помечено как безопасное или автокоррекция была отключена, я не увидел ничего, что я набрал, отображалось в кеше клавиатуры, где я делал, если я набрал его в текстовое поле с включенной автокоррекцией - просто чтобы Ясно, что даже при явном включении автокоррекции в текстовом поле, определенном IB, ничего не записывалось, если поле также было помечено как безопасное (и я также не уверен, что оно пыталось выполнить автозамену).
Теперь я заметил, что если я попробую UITextView вместо UITextField, то в этом случае даже отключение автокоррекции не остановит запись текста. Это похоже на упущение, а не на выбор дизайна. Обходным путем может быть использование UITextField, но это не всегда возможно ... Я бы подал Radar на это в Apple.
Я также могу убедиться, что в SpyPhone нет общих паролей, которые я использую (в Safari или приложениях), поэтому их нет в кэше. Но практически любое приложение, собирающее пароли, использует для этого UITextField.