In iPhoto, I can simply hold my finger over an image to get a "Copy" popup (like the popup you see in text boxes).
In my UIImageView's, this is not the case. How can I enable it?
You can manually display the Cut / Copy / Paste menu using the UIMenuController
class. For example, the following code will display the menu, centered on your image:
[self becomeFirstResponder];
UIMenuController *copyMenuController = [UIMenuController sharedMenuController];
[copyMenuController setTargetRect:image.frame inView:self.view];
[copyMenuController setMenuVisible:YES animated:YES];
This assumes that you'll be implementing this code in a UIViewController
for the view that hosts your image.
To enable the various menu items, you'll also need to implement a few delegate methods in your controller:
- (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;
}
In this case, only the Copy menu option will be enabled. You'll also need to implement the appropriate -copy: method to handle what happens when the user selects that menu item.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With