В iPhoto я могу просто провести пальцем по изображению, чтобы открыть всплывающее окно «Копировать» (например, всплывающее окно, которое вы видите в текстовых полях).
В моем UIImageView это не так. Как я могу включить его?
В iPhoto я могу просто провести пальцем по изображению, чтобы открыть всплывающее окно «Копировать» (например, всплывающее окно, которое вы видите в текстовых полях).
В моем UIImageView это не так. Как я могу включить его?
Вы можете вручную отобразить меню «Вырезать/Копировать/Вставить» с помощью UIMenuController класс. Например, следующий код отобразит меню, центрированное на вашем изображении:
[self becomeFirstResponder];
UIMenuController *copyMenuController = [UIMenuController sharedMenuController];
[copyMenuController setTargetRect:image.frame inView:self.view];
[copyMenuController setMenuVisible:YES animated:YES];
Это предполагает, что вы будете внедрять этот код в UIViewController для представления, в котором размещено ваше изображение.
Чтобы включить различные пункты меню, вам также необходимо реализовать несколько методов делегата в вашем контроллере:
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if (action == @selector(cut:))
return NO;
else if (action == @selector(copy:))
return YES;
else if (action == @selector(paste:))
return NO;
else if (action == @selector(select:) || action == @selector(selectAll:))
return NO;
else
return [super canPerformAction:action withSender:sender];
}
- (BOOL)canBecomeFirstResponder
{
return YES;
}
В этом случае будет включена только опция меню Копировать. Вам также потребуется реализовать соответствующий метод -copy: для обработки того, что происходит, когда пользователь выбирает этот пункт меню.