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.
I found one solution - it uses UITextFieldTextDidChangeNotification because this occurs after the auto-correction applies.
- Set the delegate for the text field
Set up a notification
- (void) viewDidLoad {
...
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(textFieldDidChange:)
name:UITextFieldTextDidChangeNotification object:tfTitle];
}Then, notification handler
- (void)textFieldDidChange:(NSNotification *)aNotification
{
if ( [textField.text rangeOfString:@". "].length ) {
// Change text
textField.text = [textField.text stringByReplacingOccurrencesOfString:@". " withString:@" "];
}
}
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 @". "
来源:https://stackoverflow.com/questions/1528049/iphone-sdk-disable-auto-creation-of-dot-in-text-field-or-textview