Hallo,
ich versuche über eine Klasse Daten in die Zwischablage zu kopieren und nach einem bestimmten Zeitintervall zu löschen, falls der Inhalt noch der von mir kopierte ist.
Alles anzeigen
Solange ich im in meiner App befinde, funktioniert das Kopieren und Löschen auch.
Sobald ich die App verlasse funktioniert das Löschen jedoch nicht mehr.
Habt Ihr einen Tipp?
ich versuche über eine Klasse Daten in die Zwischablage zu kopieren und nach einem bestimmten Zeitintervall zu löschen, falls der Inhalt noch der von mir kopierte ist.
Quellcode
- import SwiftUI
- public class Clipboard {
- /// The background task.
- private var backgroundTask: UIBackgroundTaskIdentifier = UIBackgroundTaskIdentifier.invalid
- /// Creates a new instance from Swift objects.
- ///
- /// - Parameters:
- /// - value: The value to be copy to the clipboard.
- /// - timeout: The time in seconds after which the clipboard is erased.
- public init(value: String, timeout: Double?) {
- UIPasteboard.general.setValue(value, forPasteboardType: "public.plain-text")
- if let timeout {
- backgroundTask = UIApplication.shared.beginBackgroundTask { [weak self] in
- self?.endBackgroundTask()
- }
- Timer.scheduledTimer(withTimeInterval: timeout,repeats: false) { [weak self] _ in
- if UIPasteboard.general.string == value {
- UIPasteboard.general.setValue("", forPasteboardType: "public.plain-text")
- }
- self?.endBackgroundTask()
- }
- }
- }
- /// Finished the background task.
- private func endBackgroundTask() {
- UIApplication.shared.endBackgroundTask(backgroundTask)
- backgroundTask = UIBackgroundTaskIdentifier.invalid
- }
- }
Sobald ich die App verlasse funktioniert das Löschen jedoch nicht mehr.
Habt Ihr einen Tipp?