在整个应用程序中禁用UITextField的自动更正

时间:2015-12-08 11:06:20

标签: ios objective-c uikit

我想在我的应用程序中的所有文本字段上禁用自动更正。我知道UITextField上的autocorrectionType属性。但是,当我开始开发应用程序时,我没有将UITextField子类化。所以我正在寻找一种解决方案,通过一行代码在我的所有TextField上禁用自动更正。

我尝试使用适用于键盘外观的[UITextField appearance]

[[UITextField appearance] setKeyboardAppearance:UIKeyboardAppearanceDark];

但不是自动更正,因为以下代码行:

[[UITextField appearance] setAutocorrectionType:UITextAutocorrectionTypeNo];

导致不一致异常:

 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Please file a radar on UIKit if you see this assertion.'

1 个答案:

答案 0 :(得分:1)

我建议使用子类 UITextField

@interface CustomTextField : UITextField
@end
@implementation CustomTextField
- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        [self setAutocorrectionType:UITextAutocorrectionTypeNo];

        // same way add all the generalize properties which you require for all the textfields. 
    }
return self;
}

现在在整个项目中使用 CustomTextField (在代码或故事板中)。

希望这有帮助。