iPhone SDK: disable auto creation of dot (.) in te

2019-01-26 17:06发布

问题:

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.

回答1:

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:@" "];
    }
    }



回答2:

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 @". "