Кнопка копирования ссылки в UIActivityViewController

Есть ли служба или параметр, который мне не хватает для создания кнопки «Копировать ссылку», как показано в приложении Apple «12 дней»?

Я могу получить кнопку «Копировать», разрешив

UIActivityTypeCopyToPasteboard

в моем UIActivityViewController и передать ему URL-адрес

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

Он работает нормально, но заголовок кнопки «Копировать», что не так ясно, как «Копировать ссылку». Мне интересно, является ли форсирование этого заголовка опцией службы, которую я пропустил, или требует определения пользовательского типа действия. Насколько я могу судить, ActivityTitle доступен только в том случае, если вы подклассифицируете сервисный метод.

Спасибо за любое понимание.

введите здесь описание изображения


person DenVog    schedule 29.12.2013    source источник


Ответы (2)


К сожалению, вам придется создать свой собственный подкласс из-за того, как контроллер представления активности отображает параметры отображения. :\

person James Richard    schedule 30.12.2013
comment
У вас есть ссылка или предложение о том, как или что сделать подклассом? - person mgarciaisaia; 31.07.2014
comment
Вы подкласс UIActivity. developer.apple.com/library/ios/ документация/uikit/ссылка/ - person James Richard; 31.07.2014
comment
Извините, я спрашивал, в частности, о подклассе действия Copy. Создание подкласса UIActivity Мне нужно продублировать все поведение копирования на монтажный стол и выбор значка, когда все, что я хочу, это просто переопределить одно из свойств существующей активности: это видимый текст. Есть ли чистый способ сделать это или мне нужно делать все вручную? Спасибо, Джеймс :) - person mgarciaisaia; 31.07.2014
comment
Ах, извините. К сожалению, это закрытый класс, поэтому вам придется его воссоздать:/ Вот хотя бы определение закрытого класса: UIKit/UICopyToPasteboardActivity.h" rel="nofollow noreferrer">github.com/MP0w/iOS-Headers/blob/ - person James Richard; 01.08.2014

Я знаю, что это старая тема. Вот ответ. Подкласс 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)
}
person DeVladinci    schedule 11.11.2015