UITextField禁用粘贴等操作

创建UITextField的子类,重写canPerformAction:withSender:返回NO您不想允许的操作的方法:

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
        if (action == @selector(paste:))//禁止粘贴
            return NO;
        if (action == @selector(select:))// 禁止选择   
            return NO;   
        if (action == @selector(selectAll:))// 禁止全选   
            return NO;  
        return [super canPerformAction:action withSender:sender];
}

能够控制用户对输入框进行哪种操作:

cut: // 剪切
copy: // 拷贝
select: // 选择
selectAll: // 全选
paste: // 粘贴
delete: // 删除
_promptForReplace: // Replace...
_transliterateChinese: // 简<=>繁
_showTextStyleOptions: // B/U
_define: // Define
_addShortcut: // Learn...
_accessibilitySpeak: // Speak
_accessibilitySpeakLanguageSelection: // Speak...
_accessibilityPauseSpeaking: // Pause
_share: // 共享...
makeTextWritingDirectionRightToLeft: // 往右缩进
makeTextWritingDirectionLeftToRight: // 往左缩进

整体禁用:

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    UIMenuController *menuController = [UIMenuController sharedMenuController];
    if (menuController) {
        [UIMenuController sharedMenuController].menuVisible = NO;
    }
    return NO;
}

你可能感兴趣的:(UITextField禁用粘贴等操作)