需求:UITextView选中文字之后,需要定制一些功能,屏蔽系统的某些功能。
自定义一个UITextView的子类YQTextView
屏蔽系统菜单栏#####
#import "YQTextView.h"
@implementation YQTextView
#pragma mark - 选中文字后是否能够弹出菜单
- (BOOL)canBecameFirstResponder {
return YES;
}
#pragma mark - 选中文字后的系统菜单响应的选项
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
if (action == @selector(copy:)) {
return YES;
} else if (action == @selector(selectAll:)) {
return YES;
}
return NO;
}
@end
定制弹出菜单栏#####
在有需求的ViewController的viewDidLoad方法中添加如下方法,并增加实现方法(若没有定义实现方法,那么这功能菜单是不会显示的)
- (void)viewDidLoad {
[super viewDidLoad];
UIMenuItem *menuOneItem = [[UIMenuItem alloc] initWithTitle:@"菜单一" action:@selector(oneAction:)];
UIMenuItem *menuTwoItem = [[UIMenuItem alloc] initWithTitle:@"菜单二" action:@selector(twoAction:)];
[UIMenuController sharedMenuController].menuItems = @[menuOneItem, menuTwoItem];
}
#pragma mark - 菜单按钮的实现方法
- (void)oneAction:(id)sender {
//对应的功能实现体
}
- (void)twoAction:(id)sender {
//对应的功能实现体
}
效果图如下: