我订阅了剪贴板文本更改通知。每次在我的应用程序中复制一些东西到剪贴板中时,它会触发事件两次。换句话说,onCopy()被调用两次。(xCode 8.1; iOS 9、10)
import Foundation
protocol Clipboard {
func onCopy()
}
class SecureClipboard : NSObject, Clipboard {
static let sharedReader = SecureClipboard()
private var clipboardContent: String?
private var clipboardBeingCleared: Bool = false
/// Lifycycle
private override init() {
super.init()
subscribForClipboardChanges()
}
private func subscribForClipboardChanges() {
NotificationCenter.default.addObserver(self,
selector: #selector(onCopy),
name:NSNotification.Name.UIPasteboardChanged,
object: nil)
}
/// Clipboard
func onCopy() {
// Called twice
}
}
1条答案
按热度按时间b5lpy0ml1#
它发送回通知,其中包含有关粘贴板内容如何更改的信息,例如Added或Removed事件。它确实会为每个粘贴板更改事件触发两次,但每次包含的用户信息都不同。
我去抖动了一小段时间来忽略这些,因为我不需要通知的userInfo中包含任何信息,否则,您可以尝试解析内容并准确地找出您关心的内容。