iOS UITextfield之禁用复制粘贴

If you saw the darkness in front of you, don't be afraid, that's because sunshine is at your back.
如果你看到面前的阴影,别怕,那是因为你的背后有阳光。

前言

文本输入框默认自带复制粘贴功能,用起来很方便。但是有些场景是禁止使用的,比如输入密码等。
乍一想UITextfield应该有某个属性可以控制这个功能,但是一找并没有。因为长按文本框出现的 复制粘贴剪切 等这些其实就是UIMenuController,要禁用这些功能还得对UIMenuController下手。

怎么做

新建一个类继承UITextfield,然后重写canPerformAction:withSender:
代码如下:

#import 

@interface MQTextField : UITextField

@end



#import "MQTextField.h"

@implementation MQTextField


- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    UIMenuController *menuController = [UIMenuController sharedMenuController];
    if (menuController) {
         //直接隐藏菜单
        [UIMenuController sharedMenuController].menuVisible = NO;
    }
    return NO;
}

@end

怎么用

正常还是用UITextfield,哪个文本框要禁用,直接用MQTextField,简单粗暴。

你可能感兴趣的:(iOS UITextfield之禁用复制粘贴)