iPhone SDK:禁用在文本字段(或文本视图)中自动创建点()

iPhone SDK:禁用在文本字段(或文本视图)中自动创建点(),iphone,cocoa-touch,autocomplete,sdk,autocorrect,Iphone,Cocoa Touch,Autocomplete,Sdk,Autocorrect,我已禁用文本字段的自动更正类型, 它不显示任何其他自动校正 但当我按两次空格键时,它仍然会自动创建一个点(.) 比如说,, 如果我写“test”并按空格键两次, 它会自动变为“测试” 有人知道如何禁用此功能吗 非常感谢。如果您连接一个文本字段委托,然后实现以下方法: -(BOOL)shouldReplaceCharactersInRange:(NSRange)aRage withString:(NSString *)aString 您可以检查aString中是否有自动更正的字符串(可能是@“)

我已禁用文本字段的自动更正类型, 它不显示任何其他自动校正

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

比如说,, 如果我写“test”并按空格键两次, 它会自动变为“测试”

有人知道如何禁用此功能吗


非常感谢。

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

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

您可以检查aString中是否有自动更正的字符串(可能是@“),然后返回否。这将不允许将@”替换为@“。

我找到了一个解决方案-它使用UITextFieldTextDidChangeNotification,因为这是在应用自动更正后发生的

  • 为文本字段设置委托
  • 设置通知

    -(void)viewDidLoad{

    [[NSNotificationCenter defaultCenter]添加观察者:self
    选择器:@selector(textfielddichange:)
    名称:UITextFieldTextDidChangeNotification对象:tfTitle];
    }

  • 然后,通知处理程序
    -(void)textfielddichange:(NSNotification*)通知化
    {
    如果([textField.text rangeOfString:@“.”).length{
    //更改文本
    textField.text=[textField.text stringByReplacingOccurrencesOfString:@.“with string:@]”;
    }
    }


  • 嗨,Bisbo,我尝试了你的建议,发现自动更正(将空格双击到句点)发生在调用此方法之后,而更改不会调用此方法进行检查。无论如何,谢谢你,如果你有任何其他想法,请告诉我。啊,哦,好吧,这只是一个想法:-)如果你检查双空格,看看那个:你的问题得到回答了吗?不完全是为了禁用该功能,但我找到了一种解决方法,我在下面发布了。但是假设我输入了一个“.”而不是“.”。这难道不会造成问题吗