Это должно быть проблемой фокуса ввода: когда фокус, UITextField может изменить только ON-> OFF.
Попробуйте следующий трюк, чтобы переключить OFF-> ON:
textField.enabled = NO;
textField.secureTextEntry = YES;
textField.enabled = YES;
[textField becomeFirstResponder];
EDIT (dhoerl): В iOS 9.3 я обнаружил, что это работает, но есть проблема.Если вы введете, скажем, 3 символа в обычном виде, затем переключитесь на защищенный текст, затем введите символ, 3 ранее существовавших символа исчезнут.Я попробовал все виды трюков, чтобы очистить, а затем сбросить текст без успеха.Я наконец попытался просто поиграть с управлением, вырезав и вставив - вставка в недавно переключенный в защищенный режим работала отлично.Так что я эмулировал это в коде, и теперь все работает нормально - не нужно играть с респондентом.Вот что я наконец-то получил:
if textview should go into secure mode and the textfield is not empty {
textField.text = ""
textField.secureTextEntry = true
UIPasteboard.generalPasteboard().string = password
textField.paste(self)
UIPasteboard.generalPasteboard().string = ""
}
Я бы предпочел не делать эту вставку, но если вы хотите, чтобы она была бесшовной, это единственный способ найти это.