6

在 iPhoto 中,我只需将手指放在图像上即可获得“复制”弹出窗口(就像您在文本框中看到的弹出窗口一样)。

在我的 UIImageView 中,情况并非如此。我该如何启用它?

4

1 回答 1

16

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: 方法来处理用户选择该菜单项时发生的情况。

于 2009-10-08T01:24:24.580 回答