簡(jiǎn)介
Displaying and Managing the Edit Menu 官方文檔
管理選擇和編輯菜單
- 觸發(fā)顯示編輯菜單,注意需要能成為第一響應(yīng)者才行,看情況是否需要繼承處理。
- (void)tapHandler {
if (![self becomeFirstResponder]) {
NSLog(@"error");
return;
}
UIMenuController *menu=[UIMenuController sharedMenuController];
[menu setTargetRect:self.bounds inView:self];
[menu setMenuVisible:YES];
}
- 選擇性顯示
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
if (action == @selector(cut:)) {
return YES;
}
return NO;
}
添加自定義項(xiàng)目
- 一般是UIResponder類的子類即可,比如繼承UIImage,注意需要使用點(diǎn)擊或者其他方式觸發(fā)
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.userInteractionEnabled = YES;
UITapGestureRecognizer *pressGesture=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapHandler)];
[self addGestureRecognizer:pressGesture];
}
return self;
}
- 必須第一響應(yīng)者才會(huì)觸發(fā)編輯菜單
- (BOOL)canBecomeFirstResponder {
return YES;
}
- 觸發(fā)顯示編輯菜單
- (void)tapHandler {
if (![self becomeFirstResponder]) {
NSLog(@"error");
return;
}
UIMenuController *menu=[UIMenuController sharedMenuController];
// 自定義的菜單,注意seletor需要選擇在后面顯示
UIMenuItem *pop = [[UIMenuItem alloc]initWithTitle:@"Pop" action:@selector(popSelf)];
menu.menuItems=@[pop];
[menu setTargetRect:self.bounds inView:self];
menu.arrowDirection=UIMenuControllerArrowDown;
[menu update];
[menu setMenuVisible:YES];
}
- 選擇菜單按鈕顯示
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
if (action == @selector(popSelf)) {?
return YES;
}
return NO;
}
- 自定義的菜單方法
- (void)popSelf {
NSLog(@"pop");
}
隱藏編輯菜單
- 默認(rèn)自動(dòng)隱藏。
- 關(guān)于編輯菜單,還有額外的通知可供使用。