先看效果如下图:
UIMenuController 的用法和UIAlertViewController 的用法类似,它可以添加的UILabel 、UIImageView、UIButton等上面。
用法很简单代码如下:
此处是添加到button上的,位置放在了button的中间,如果要加在label上,可以给lable添加一个手势。
self.tmpBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[self.tmpBtn setFrame:CGRectMake(100, 200, 200, 60)];
[self.tmpBtn setBackgroundColor:[UIColor orangeColor]];
[self.tmpBtn setTitle:@"菜单1" forState:UIControlStateNormal];
[self.tmpBtn addTarget:self action:@selector(setBtnAction) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:self.tmpBtn];
-(void)setBtnAction
{
UIMenuController * menuvc = [UIMenuController sharedMenuController];
UIMenuItem * menItem = [[UIMenuItem alloc]initWithTitle:@"复制" action:@selector(setcopy:)];
UIMenuItem * menItem1 = [[UIMenuItem alloc]initWithTitle:@"粘贴" action:@selector(setcopy1:)];
[menuvc setMenuItems:@[menItem,menItem1]];
//添加位置
CGRect menuLocation = CGRectMake(CGRectGetWidth(self.tmpBtn.frame)/2,CGRectGetHeight(self.tmpBtn.frame)/2, 10, 10);
//添加到button 上
[menuvc setTargetRect:menuLocation inView:self.tmpBtn];
[menuvc setMenuVisible:YES animated:YES];
}
最后要记得添加
//允许成为第一响应者
-(BOOL)canBecomeFirstResponder{
return YES;
}