OGeek|极客世界-中国程序员成长平台

标题: ios - 通知中心触发 UIPasteboard 从 Safari 更改? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 19:39
标题: ios - 通知中心触发 UIPasteboard 从 Safari 更改?

我已注册如下通知:

NotificationCenter.default.addObserver(self,
     selector: #selector(functionName),
     name: NSNotification.Name.UIPasteboardChanged,
     object: nil);

调用函数:

func functionName(){
    print("changed");
}

当用户在应用内复制和粘贴时会触发通知,但是当用户从其他应用(如 Safari)复制时不会触发。

这是我尝试触发通知的用例: 一个用户在 iPad 上同时拥有我的应用程序和 Safari。用户从 Safari 复制某些内容,我的应用会自动检测到用户复制了某些内容并处理粘贴板。

3 个相关问题:

  1. 我读到 CFNotificationCenter 是更适合处理这些请求的通知中心,在这个用例中是否正确?

  2. 这是否违反了“沙盒”,这就是为什么通知仅在应用程序本地进行的更改时触发的原因?

  3. 是否有一种变通方法让 UIPasteboardChanged 上的函数按我的意愿触发?



Best Answer-推荐答案


如果您的APP进入后台,并且没有后台事件,您的APP将无法收到通知。您可以在收到通知时保留用户的副本和粘贴。然后你的应用程序进入前台,你可以比较新的副本和粘贴。

关于ios - 通知中心触发 UIPasteboard 从 Safari 更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43938931/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4