我已注册如下通知:
NotificationCenter.default.addObserver(self,
selector: #selector(functionName),
name: NSNotification.Name.UIPasteboardChanged,
object: nil);
调用函数:
func functionName(){
print("changed");
}
当用户在应用内复制和粘贴时会触发通知,但是当用户从其他应用(如 Safari)复制时不会触发。
这是我尝试触发通知的用例:
一个用户在 iPad 上同时拥有我的应用程序和 Safari。用户从 Safari 复制某些内容,我的应用会自动检测到用户复制了某些内容并处理粘贴板。
3 个相关问题:
我读到 CFNotificationCenter 是更适合处理这些请求的通知中心,在这个用例中是否正确?
这是否违反了“沙盒”,这就是为什么通知仅在应用程序本地进行的更改时触发的原因?
是否有一种变通方法让 UIPasteboardChanged 上的函数按我的意愿触发?
Best Answer-推荐答案 strong>
如果您的APP进入后台,并且没有后台事件,您的APP将无法收到通知。您可以在收到通知时保留用户的副本和粘贴。然后你的应用程序进入前台,你可以比较新的副本和粘贴。
关于ios - 通知中心触发 UIPasteboard 从 Safari 更改?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/43938931/
|