Iphone 编辑UITextField时切换UITextAutoCorrectionType

Iphone 编辑UITextField时切换UITextAutoCorrectionType,iphone,uikit,uitextfield,autocorrect,Iphone,Uikit,Uitextfield,Autocorrect,我想根据文本字段中的内容打开/关闭自动更正 例如,如果用户正在键入“机床”之类的短语,我希望启用自动更正(对于她要键入的其余单词),但如果我感觉到诸如“www.mach..”之类的网址的开头,我希望关闭自动更正 我在接收UITextFieldTextDidChangeNotification时尝试了这样做,方法是根据键入的内容在textfield上切换autoCorrectionType。虽然文本字段上此属性的实际值发生更改(使用NSLog验证),但实际更正行为不会受到影响。因此,如果在编辑会话

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

例如,如果用户正在键入“机床”之类的短语,我希望启用自动更正(对于她要键入的其余单词),但如果我感觉到诸如“www.mach..”之类的网址的开头,我希望关闭自动更正

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

那么,有人找到了在文本字段中启用/禁用动态自动更正(编辑时)的方法吗


谢谢。

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

[textView resignFirstResponder];
// UITextAutoCorrectionType change
[textView becomeFirstResponder];
这很有效。请记住恢复选定的范围


Raphael

设置自动更正类型后,我能够运行
[textField reloadInputViews]


请注意,这会重置键盘的状态。如果您正在查看符号(而不是字母),在调用
reloadInputViews
后,键盘将重置为字母。

我没有这样做的经验。建议:1)您是否在设备上测试过,而不仅仅是在模拟器上?可能会有不同。2) 虽然很难看,但您可能可以使用一对文本字段,对该值使用两种不同的设置,并或多或少地在这两个字段之间无缝转换,隐藏未使用的字段,并更新可见字段的文本/第一响应者状态。这听起来不错。谢谢@wkw,很抱歉之前没有回复您的评论。不知怎的,我没有收到回复我查询的电子邮件通知。谢谢你的意见。干杯,德夫