6
iPhotoでは、画像上に指を置くだけで、「コピー」ポップアップ(テキストボックスに表示されるポップアップのような)を得ることができます。標準iPhone Copy BubbleをUIImageに表示するにはどうすればよいですか?
私のUIImageViewでは、これは当てはまりません。どうすればそれを有効にできますか?
iPhotoでは、画像上に指を置くだけで、「コピー」ポップアップ(テキストボックスに表示されるポップアップのような)を得ることができます。標準iPhone Copy BubbleをUIImageに表示するにはどうすればよいですか?
私のUIImageViewでは、これは当てはまりません。どうすればそれを有効にできますか?
UIMenuController
classを使用して、[切り取り/コピー/貼り付け]メニューを手動で表示できます。
[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:メソッドを実装して、ユーザーがそのメニュー項目を選択したときの処理を処理する必要があります。