ios - 如何让标准的 iPhone Copy 气泡出现在 UIImage 上?

标签 ios uiimage copy clipboard uipasteboard

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

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

最佳答案

您可以使用 UIMenuController class 手动显示剪切/复制/粘贴菜单.例如,以下代码将以您的图像为中心显示菜单:

[self becomeFirstResponder];

UIMenuController *copyMenuController = [UIMenuController sharedMenuController];

[copyMenuController setTargetRect:image.frame inView:self.view];
[copyMenuController setMenuVisible:YES animated:YES];

这假设您将在 UIViewController 中实现此代码对于托管您的图片的 View 。

要启用各种菜单项,您还需要在 Controller 中实现一些委托(delegate)方法:

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

关于ios - 如何让标准的 iPhone Copy 气泡出现在 UIImage 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1534886/

相关文章:

ios - 在 app Delegate 中使用 pushViewController

ios - 我可以从 Firebase 云函数发送静默推送通知吗?

svn - 如何撤消 'svn copy'

Android 无法从 Assets 复制数据库

Angular4 复制对象没有引用?

ios - if 子句中的简单倒数,导致索引超出范围

ios - Swift:Tableview 和搜索栏第一次使用 segue 发送 null 对象

ios - TableView 中的 UIImage 占用内存

ios - 如何将图像旋转90度并保存

ios - UIImage 中的绘图被扭曲