UIPasteboard не может копировать текст со временем истечения несколько раз - PullRequest
0 голосов
/ 20 марта 2019

Я звоню:

UIPasteboard.general.setItems([[kUTTypePlainText as String: text]], options: [.localOnly: true, .expirationDate: expirationTime])

для копирования текста по нажатию кнопки. Однако по истечении времени истечения (30 секунд) функция копирования перестает работать. После просмотра в отладчике, во второй раз (или после) вызывается эта строка, массив items в UIPasteboard возвращается как пустой. Почему это происходит? Другие приложения, такие как Lastpass, позволяют копировать текст несколько раз с истечением срока действия.

У меня есть догадка, что это может быть связано с используемым ключом, есть идеи?

1 Ответ

0 голосов
/ 29 марта 2019

Потратив слишком много времени, я не смог понять, почему опция expirationDate в setItems(_:options:) не работает для последующего использования этой функции.Нет другой документации по этому вопросу.Либо это основная тривиальная проблема, которую я не могу выяснить, либо что-то более сложное с API.

В любом случае, я реализовал это решение с использованием таймера.Это будет работать для всех версий iOS, мы просто очищаем массив элементов UIPasteboard через 30 секунд.Опция expirationDate работает только для iOS 10.3 и выше, в то время как эта функциональность более надежна и будет работать для всех версий.так как это позволяет мне абстрагироваться от функциональности копирования UIPasteboard и для простого использования через статическую функцию, что мне и нужно.

...