Will Yeo - MSFT
Will Yeo - MSFT

Reputation: 241

iPhone SDK: disable auto creation of dot (.) in text field (or textview)

I've disabled auto-correction type for my text field, and it does not show any other auto-correction,

but it still automatically creates a dot (.) when I press space key twice.

For example, if I write "test" and press space key twice, it automatically changes into "test. "

Anyone knows how to disable this feature?

Thanks a lot.

Upvotes: 6

Views: 3183

Answers (2)

Will Yeo - MSFT
Will Yeo - MSFT

Reputation: 241

I found one solution - it uses UITextFieldTextDidChangeNotification because this occurs after the auto-correction applies.

  1. Set the delegate for the text field
  2. Set up a notification

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

  3. Then, notification handler
    - (void)textFieldDidChange:(NSNotification *)aNotification
    {
    if ( [textField.text rangeOfString:@". "].length ) {
    // Change text
    textField.text = [textField.text stringByReplacingOccurrencesOfString:@". " withString:@" "];
    }
    }

Upvotes: 2

Michael Waterfall
Michael Waterfall

Reputation: 20569

Perhaps if you hook up a text field delegate and then implement the following method:

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

You may be able to check aString for the autocorrected string (maybe @". ") and then just return NO. This will hopefully not allow the @" " to be replaced with @". "

Upvotes: 1

Related Questions