美文网首页
UITextfield 禁用复制粘贴操作(添加分类属性控制)

UITextfield 禁用复制粘贴操作(添加分类属性控制)

作者: 张小泺 | 来源:发表于2017-11-29 17:10 被阅读61次

1 UIResponder

利用抽象接口 UIResponder 的 - (BOOL)canPerformAction:(SEL)action withSender:(nullable id)sender 方法控制能否做编辑操作, 返回YES 可编辑,NO不可做编辑操作;
常见控制的操作方法(协议UIResponderStandardEditActions):

- (void)cut:(nullable id)sender NS_AVAILABLE_IOS(3_0);
- (void)copy:(nullable id)sender NS_AVAILABLE_IOS(3_0);
- (void)paste:(nullable id)sender NS_AVAILABLE_IOS(3_0);
...

2 给UITextField分类添加一个属性,标记UITextField对象能否做编辑操作

3 代码如下

分类.h文件

记得导入runtime库

#import <objc/runtime.h>

@property (nonatomic) BOOL canPerformAction;

分类.m文件

// MARK: 分类添加属性
- (void)setCanPerformAction:(BOOL)canPerformAction {
    objc_setAssociatedObject(self, @selector(canPerformAction), @(canPerformAction), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

- (BOOL)canPerformAction {
    id value = objc_getAssociatedObject(self, _cmd);
    return [value boolValue];
}

// MARK: 控制textfield能否做编辑操作
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    return self.canPerformAction;
}

4 禁用部分编辑功能

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    if (action == @selector(copy:)) { // 禁用复制功能
        return NO;
    } else {
        return YES;
    }
}

参考

参考1:canPerfromAction 使用方法
参考2:编辑操作方法

相关文章

网友评论

      本文标题:UITextfield 禁用复制粘贴操作(添加分类属性控制)

      本文链接:https://www.haomeiwen.com/subject/etqcdttx.html