直接上图上代码 [XCode5.1] [iOS 7.1 SDK]
#pragma mark - UIMenuController
- (void)showMenuView
{
UIMenuController *menu = [UIMenuController sharedMenuController];
// UIMenuItem 对象 action 和 title 都不能为nil
UIMenuItem *item1 = [[[UIMenuItem alloc] initWithTitle:@"item1" action:@selector(item1Action:)] autorelease];
UIMenuItem *item2 = [[[UIMenuItem alloc] initWithTitle:@"item2" action:@selector(item2Action:)] autorelease];
UIMenuItem *item3 = [[[UIMenuItem alloc] initWithTitle:@"item3" action:@selector(item3Action:)] autorelease];
[menu setMenuItems:@[item1, item2, item3]];
// 设置显示的位置和父试图
[menu setTargetRect:CGRectZero inView:self];
// 显示
[menu setMenuVisible:YES animated:YES];
}
- (void)item1Action:(id)sender
{
NSLog(@"%@", NSStringFromSelector(_cmd));
}
- (void)item2Action:(id)sender
{
NSLog(@"%@", NSStringFromSelector(_cmd));
}
- (void)item3Action:(id)sender
{
NSLog(@"%@", NSStringFromSelector(_cmd));
}
#pragma mark - 为了使用UIMenuController 必须重写以下的方法
- (BOOL)canBecomeFirstResponder
{
return YES;
}
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
// 如果 UIMenuController 的 item 的 action,返回YES
if ( action==@selector(item1Action:)
|| action==@selector(item2Action:)
|| action==@selector(item3Action:) ) {
return YES;
}
else {
return [super canPerformAction:action withSender:sender];
}
}