禁用UITextField键盘快捷方式建议

Mat*_*att 20 uitextfield uitextview ios ios7

有一个简单的方法来消除键盘快捷键建议UITextField

可以使用以下方法删除键入更正:[textField setAutocorrectionType:UITextAutocorrectionTypeNo];但这对快捷方式没有影响.

影响sharedMenuController也不会压缩这个.

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    [UIMenuController sharedMenuController].menuVisible = NO;
    return  NO;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Mat*_*att 4

通过实现一种UITextFieldDelegate方法并手动设置 UITextField 的文本属性解决了这个问题。

默认情况下,在模拟器中,您可以通过输入“omw”来测试此行为,这应该表明“On my way!” 。以下代码将阻止此操作。注意:这也会禁用自动更正检查拼写,这在我的情况下是可以的。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    // Pass through backspace and character input
    if (range.length > 0 && [string isEqualToString:@""]) {
        textField.text = [textField.text substringToIndex:textField.text.length-1];
    } else {
        textField.text = [textField.text stringByAppendingString:string];
    }
    // Return NO to override default UITextField behaviors
    return NO;
}
Run Code Online (Sandbox Code Playgroud)