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;
}
}