在编辑UITextField时切换UITextAutoCorrectionType

Dev*_*hen 2 iphone autocorrect uitextfield uikit

我想根据文本字段中的内容打开/关闭自动更正.

例如,如果用户正在键入像"机器工具"这样的短语,我希望自动更正(对于她要输入的其余单词),但是如果我感觉到 - 比如说 - 像"www"这样的网址的开头.mach .."我想关闭自动修正功能.

我尝试在接收UITextFieldTextDidChangeNotification时执行此操作,方法是根据键入的内容在文本字段上切换autoCorrectionType.虽然此属性在文本字段上的实际值发生更改(使用NSLog验证),但实际的更正行为不会受到影响.因此,如果在编辑会话开始时启用了自动更正,那么即使我将文本字段设置为UITextAutoCorrectionTypeNo,它仍然是如此.因此,"www.foogle ..."会更正为"www.google ..",这在我的书中并不总是可取的.

那么有没有人找到一种在文本字段中即时启用/禁用自动校正(编辑时)的方法?

谢谢.

Rap*_*aad 6

UITextView必须在内部重新加载它不会自动执行的操作,因此我们必须从外部触发它.我找到的方法是辞职并再次成为第一响应者:

[textView resignFirstResponder];
// UITextAutoCorrectionType change
[textView becomeFirstResponder];
Run Code Online (Sandbox Code Playgroud)

这有效.请记住恢复所选范围.

拉斐尔