UITextfield 禁用復(fù)制粘貼操作(添加分類屬性控制)

1 UIResponder

利用抽象接口 UIResponder 的 - (BOOL)canPerformAction:(SEL)action withSender:(nullable id)sender 方法控制能否做編輯操作, 返回YES 可編輯,NO不可做編輯操作;
常見控制的操作方法(協(xié)議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分類添加一個屬性,標(biāo)記UITextField對象能否做編輯操作

3 代碼如下

分類.h文件

記得導(dǎo)入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:)) { // 禁用復(fù)制功能
        return NO;
    } else {
        return YES;
    }
}

參考

參考1:canPerfromAction 使用方法
參考2:編輯操作方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容