1

Apple の 12 Days アプリで見られるように、「リンクをコピー」ボタンを作成するために不足しているサービスまたはパラメーターはありますか?

許可することで[コピー]ボタンを表示できます

UIActivityTypeCopyToPasteboard

私のUIActivityViewControllerで、URLを渡します

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

正常に機能しますが、ボタンのタイトルは「コピー」であり、「リンクのコピー」ほど明確ではありません。このタイトルを強制することは、私が見逃したサービス オプションなのか、それともカスタム アクティビティ タイプを定義する必要があるのか​​ 疑問に思っています。私が知る限り、 activityTitle は、サービス メソッドをサブクラス化した場合にのみ使用できます。

洞察をありがとう。

ここに画像の説明を入力

4

2 に答える 2

5

私はそれが古いスレッドであることを知っています。これが答えです。項目の 1 つだけをサブクラス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

残念ながら、Activity View Controller が表示オプションを処理する方法により、独自のサブクラスを作成する必要があります。:\

于 2013-12-30T00:20:44.250 に答える