1

我是否缺少创建“复制链接”按钮的服务或参数,如 Apple 的 12 天应用程序中所示?

我可以通过允许出现“复制”按钮

UIActivityTypeCopyToPasteboard

在我的 UIActivityViewController 中,并传递给它一个 URL

NSURL *activityURL = [NSURL URLWithString:@"http://www.mylink.com/"];

它功能正常,但是按钮标题是“复制”,没有“复制链接”那么清晰。我想知道是否强制使用此标题是我错过的服务选项,还是需要定义自定义活动类型。据我所知,activityTitle 仅在您子类化服务方法时才可用。

感谢您的任何见解。

在此处输入图像描述

4

2 回答 2

5

我知道这是旧线程。这是答案。UIActivity仅其中一项的子类和粘贴板中的复制URL是完整的实现。

private var url = NSURL()

override func activityType() -> String? {
    return "com.productHunt.copyLink"
}

override func activityTitle() -> String? {
    return "Copy Link"
}

override func activityImage() -> UIImage? {
    return UIImage(named: "icon-copy")
}

override func canPerformWithActivityItems(activityItems: [AnyObject]) -> Bool {
    for activityItem in activityItems {
        if let _ = activityItem as? NSURL {
            return true
        }
    }

    return false
}

override func prepareWithActivityItems(activityItems: [AnyObject]) {

    for activityItem in activityItems {
        if let url = activityItem as? NSURL {
            self.url = url
        }
    }
}

override func performActivity() {
    UIPasteboard.generalPasteboard().string = url.absoluteString
    activityDidFinish(true)
}
于 2015-11-11T14:58:55.850 回答
0

不幸的是,由于活动视图控制器处理显示选项的方式,您必须创建自己的子类。:\

于 2013-12-30T00:20:44.250 回答