????需求: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 {
//對應的功能實現體
}
效果圖如下:
效果圖