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