iOS开发~禁用文本输入框拷贝和粘贴等功能

一、概要

苹果在 iOS 3.0 中增加了剪切、复制等功能,开发者也可以使用UIMenuController组件用来定制个性化的弹出菜单,但有些场景需要禁用这个功能,例如一个银行App的密码输入框。


二、实践

一般使用UIMenuController的控件有UITextView和UITextField,以下以UITextField为例,想禁用UIMenuController功能最简单的方法是自定义一个UITextField,并且重载其方法:

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    [UIMenuController sharedMenuController].menuVisible = NO;
    if (action == @selector(copy:)) {
        return NO;
    } else if (action == @selector(selectAll:)) {
        return NO;
    }
    
    return NO;
}

这样就禁用了UIMenuController功能,以上代码禁用了拷贝和选择全部的功能,如果要禁用其他功能可以参看SDK接口:

- (void)cut:(id)sender NS_AVAILABLE_IOS(3_0);
- (void)copy:(id)sender NS_AVAILABLE_IOS(3_0);
- (void)paste:(id)sender NS_AVAILABLE_IOS(3_0);
- (void)select:(id)sender NS_AVAILABLE_IOS(3_0);
- (void)selectAll:(id)sender NS_AVAILABLE_IOS(3_0);



你可能感兴趣的:(iOS)