Comment puis-je faire apparaître la bulle standard iPhone Copy sur un UIImage?

Dans iPhoto, je peux simplement placer mon doigt sur une image pour get une window contextuelle "Copier" (comme la window contextuelle que vous voyez dans les zones de text).

Dans mon UIImageView, ce n'est pas le cas. Comment puis-je l'activer?

Vous pouvez afficher manuellement le menu Couper / Copier / Coller à l'aide de la class UIMenuController . Par exemple, le code suivant affichera le menu, centré sur votre image:

 [self becomeFirstResponder]; UIMenuController *copyMenuController = [UIMenuController sharedMenuController]; [copyMenuController setTargetRect:image.frame inView:self.view]; [copyMenuController setMenuVisible:YES animated:YES]; 

Cela suppose que vous allez implémenter ce code dans un UIViewController pour la vue qui héberge votre image.

Pour activer les différents éléments de menu, vous devez également implémenter quelques methods de délégué dans votre 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; } 

Dans ce cas, seule l'option de menu Copier sera activée. Vous devrez également implémenter la méthode -copy: appropriée pour gérer ce qui se passe lorsque l'user sélectionne cet élément de menu.