iPhone SDK: отключить автоматическое создание точки (.) в текстовом поле (или в режиме просмотра текста) - PullRequest
4 голосов
/ 07 октября 2009

Я отключил тип автокоррекции для своего текстового поля, и он не показывает никакой другой автокоррекции,

, но он автоматически создает точку (.), Когда я дважды нажимаю клавишу пробела.

Например, если я напишу «тест» и дважды нажмите клавишу пробела, оно автоматически превращается в «тест».

Кто-нибудь знает, как отключить эту функцию?

Большое спасибо.

Ответы [ 2 ]

2 голосов
/ 07 октября 2009

Я нашел одно решение - оно использует UITextFieldTextDidChangeNotification, потому что это происходит после применения автокоррекции.

  1. Установить делегат для текстового поля
  2. Настройка уведомления

    - (void) viewDidLoad {<br> ...<br> [[NSNotificationCenter defaultCenter] addObserver:self<br> selector:@selector(textFieldDidChange:)<br> name:UITextFieldTextDidChangeNotification object:tfTitle];<br> }

  3. Затем обработчик уведомлений
    - (void)textFieldDidChange:(NSNotification *)aNotification<br> {<br> if ( [textField.text rangeOfString:@". "].length ) {<br> // Change text<br> textField.text = [textField.text stringByReplacingOccurrencesOfString:@". " withString:@" "];<br> }<br> }

1 голос
/ 07 октября 2009

Возможно, если вы подключите делегат текстового поля, а затем реализуете следующий метод:

-(BOOL)shouldReplaceCharactersInRange:(NSRange)aRage withString:(NSString *)aString

Вы можете проверить aString на наличие автокоррекции строки (возможно, @ "."), А затем просто вернуть NO. Надеемся, что это не позволит заменить @ "" на @ "."

...