我怎样才能得到标准的iPhone复制泡沫出现在一个UIImage?(How can I get th

2019-08-17 12:19发布

在iPhoto中,我可以简单地握住我的手指在图片上即可得到“复制”弹出(就像你在文本框中看到弹出)。

在我的UIImageView的,这种情况并非如此。 我如何才能启用它?

Answer 1:

您可以手动显示使用剪切/复制/粘贴菜单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:方法来处理,当用户选择该菜单项时会发生什么。



文章来源: How can I get the standard iPhone Copy bubble to appear on a UIImage?