5

我为我的文本字段禁用了自动更正类型,它没有显示任何其他自动更正,

但是当我按两次空格键时,它仍然会自动创建一个点 (.)。

例如,如果我写“test”并按两次空格键,它会自动变为“test”。

任何人都知道如何禁用此功能?

非常感谢。

4

2 回答 2

2

我找到了一种解决方案 - 它使用 UITextFieldTextDidChangeNotification 因为这发生在自动更正应用之后。

  1. 设置文本字段的委托
  2. 设置通知

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

  3. 然后,通知处理程序
    - (void)textFieldDidChange:(NSNotification *)aNotification
    {
    if ( [textField.text rangeOfString:@". "].length ) {
    // Change text
    textField.text = [textField.text stringByReplacingOccurrencesOfString:@". " withString:@" "];
    }
    }

于 2009-10-07T04:31:53.437 回答
1

也许如果您连接一个文本字段委托,然后实现以下方法:

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

您可以检查 aString 是否有自动更正的字符串(可能是 @"."),然后返回 NO。希望这不会允许 @" " 被替换为 @"。"

于 2009-10-07T01:25:05.887 回答