Я пытаюсь отобразить пользовательский UIMenuController из UIImageView, который встроен в UITextView.
Как мне добиться этого?
Я получаю меню, отображаемое с помощью Cut, Copy, Вставить, Выбрать, Выбрать все, как показано на рисунке ниже: ![enter image description here](https://i.stack.imgur.com/4HHh7.png)
Только если я нажму еще, я получу то, что хочу: ![enter image description here](https://i.stack.imgur.com/edNct.png)
Вот некоторые из моего кода:
@interface UIImageView (Extended)
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (BOOL)canBecomeFirstResponder;
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender;
@end
@implementation UIImageView (Extended)
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
if (action == @selector(copy:) || action == @selector(paste:) || action == @selector(cut:) || action == @selector(delete:) ||
action == @selector(select:) || action == @selector(selectAll:)) {
return YES;
}
return NO;
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.nextResponder touchesBegan:touches withEvent:event];
}
@end
- (void)showMenuController {
UIMenuController *sharedController = [UIMenuController sharedMenuController];
UIMenuItem *moreOptionsItem = [[UIMenuItem alloc] initWithTitle:@"More options" action:@selector(imageMenuItemPressedMore:)];
UIMenuItem *cut = [[UIMenuItem alloc] initWithTitle:@"Cut" action:@selector(cutImageItemPressed:)];
UIMenuItem *copy_item = [[UIMenuItem alloc] initWithTitle:@"Copy" action:@selector(copyImagePressed:)];
UIMenuItem *paste = [[UIMenuItem alloc] initWithTitle:@"Paste" action:@selector(pasteImagePressed:)];
UIMenuItem *crop = [[UIMenuItem alloc] initWithTitle:@"Crop" action:@selector(cropImagePressed:)];
sharedController.menuItems = [NSArray arrayWithObjects:cut, copy_item, paste, crop, moreOptionsItem, nil];
[moreOptionsItem release];
[cut release];
[copy_item release];
[paste release];
[crop release];
[sharedController setTargetRect:CGRectMake(theView.frame.size.width/2, 0, 0, 0) inView:theView];
[sharedController setMenuVisible:YES animated:YES];
}
Что я делаю не так?Любая помощь приветствуется.