не может одновременно печатать и отправлять по электронной почте из UIActivityController

Я пытаюсь поделиться билетом (моей конструкцией) для печати и отправки по электронной почте с помощью iOS UIActivityCoontroller. Билет отформатирован как UISimpleTextPrintFormatter, так и как строка с атрибутами. Когда отображается диалоговое окно, я могу выбрать печать или отправку по электронной почте, но не то и другое одновременно. Мой код:

          let str = NSAttributedString(string: displayString, attributes: attrs)
    let ticket = [UISimpleTextPrintFormatter(attributedText: str)] 
    let ac = UIActivityViewController(activityItems: xxxxx, applicationActivities: nil)

Когда ххххх = билет, диалоговое окно общего доступа предлагает варианты «Разметка» и «Печать».

Когда xxxxx = [str], в диалоговом окне предлагается электронная почта, сообщения, AirDrop, Dropbox и другие.

Когда xxxxx = [ticket, str], диалоговое окно предлагает электронную почту, сообщение и т. д., но НЕ распечатывает или делает разметку.

Разве третий случай не должен включать все действия и представлять соответствующие данные для каждого? Что мне не хватает? (iOS 14.2.1)

Редактировать: чтобы проверить это, я создал новый проект с одной кнопкой, связанной в основном с кодом выше. Наблюдается такое же поведение. Отдельные ресурсы при совместном использовании работают должным образом. (Текст и печать) при объединении в один ActivityItem параметр печати не отображается.

1 ответ

Проблема здесь в том, что переменная ticket создается как массив. Так не должно быть. Снятие брекетов в

      Let ticket = [UISimpleTextFormatter ...

line заставляет все работать как положено.

Другие вопросы по тегам