在日常开发工作中,有很多涉及密码的文本框,处于安全考虑我们一般都是不让用户使用复制和粘贴功能的,也就是长按文本框内容时禁止弹出文本复制、粘贴等菜单栏,接下来简单说一下这种需求怎么实现。

1、创建基于 UITextfield 的 BaseTextfield

2、在 BaseTextfield.m 中写入如下代码

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

3、在需要使用的类中,创建基于 BaseTextfield 的 Textfield,而此时的 Textfield 就没有了粘贴、选择以及全选的菜单栏功能,用户在输入密码时就不能再进行复制粘贴了。