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:メソッドを実装する必要があります。