не может одновременно печатать и отправлять по электронной почте из 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 заставляет все работать как положено.