通知中心从Safari改变UIPasteboard?

时间:2017-05-12 13:28:18

标签: ios swift nsnotificationcenter uipasteboard notificationcenter

我已经注册了如下通知:

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

调用函数:

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

当用户在应用程序中复制和粘贴时会触发通知,但是,当用户从Safari等其他应用程序进行复制时,它不会触发。

以下是我尝试触发通知的用例: 用户将我的应用程序和Safari并排放在iPad上。用户从Safari复制某些内容,我的应用程序会自动检测到用户已经复制了某些内容并处理了粘贴板。

3相关问题:

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

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

  3. 是否可以根据需要在UIPasteboardChanged上触发此功能?

1 个答案:

答案 0 :(得分:0)

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