- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 iOS 应用程序,它查看粘贴板的内容并尝试(希望)用它做一些智能的事情。 (该应用程序需要 iOS 9.3+,尽管此时我想大多数人都在使用 iOS 11.x。)
问题是我的设备 (iPhone X) 总是从我的 MacBook Pro 复制数据。例如,我可以在我的 MacBook 上选择和复制文本,然后将其放入那里的粘贴板中。然后在我的 iPhone 上,我可以选择并复制诸如我的电子邮件地址之类的文本,然后将其放到那里的粘贴板上。但是当我运行我的应用程序并尝试访问粘贴板时,它需要几秒钟然后使用我的 MacBook 中的文本!
这特别烦人,因为它会在通过网络拉取数据时造成延迟,使我的 UI 无响应。我更愿意让 [UIPasteboard -hasStrings]
方法立即返回。
我知道我可以在添加项目时使用 setItems:options:
选项值为 UIPasteboardOptionLocalOnly
,这样这些项目将保留在设备上,不会转移到MacBook。但该选项不会阻止粘贴板自动从 MacBook 中提取数据。
有什么方法可以防止 hasStrings
自动从远程笔记本电脑中提取数据,而无需在设备上完全禁用该功能(即,我不想强迫用户在所有应用程序的系统级别)。
最佳答案
使用异步函数检索数据并防止阻塞 UI。像这样:
func getStringFromClipboard(completion: @escaping (_ copiedString: String?) -> Void) {
DispatchQueue.global(qos: .userInitiated).async {
let pastboardString = UIPasteboard.general.string
DispatchQueue.main.async {
completion(pastboardString)
}
}
}
然后:
override func viewWillAppear(_ animated: Bool) {
super.viewWilAppear(animated)
getStringFromClipboard { (copiedString) in
guard let copiedString = copiedString else {
return
}
// your code if clipboard contains string
}
}
关于ios - 我可以阻止 UIPasteboard 使用 Handoff 从另一台设备复制文本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47445567/
观看了 WWDC 视频后,我很想在我的一个应用程序中采用切换,这个概念看起来很简单,但是切换没有出现在我的其他设备上,其他 Apple 切换正在工作。我猜我的问题与我的 info.plist 文件中的
我已经在我的应用程序中添加了少量代码来处理 Handoff。没什么特别的,只是创建简单的 NSUserActivity,将我的 -[UIViewController userActivity] 属性设
用户事件信息如何在 Handoff 中传输?该文档建议通过 iCloud 处理更大规模的数据同步,但没有说明用于小数据的机制。 最佳答案 据我了解,Handoff 的所有通信都是通过蓝牙 LE 完成的
我正在尝试从 Apple Watch 到 iPhone 继续执行一项任务,并希望将包含相关数据的父应用程序启动到前台以继续工作流程。我知道使用 WKInterfaceController.openPa
我希望有一个 ThreadPoolExecutor,我可以在其中设置一个 corePoolSize 和一个 maximumPoolSize,然后队列将切换任务立即进入线程池,从而创建新线程,直到达到
我有一个 iOS 应用程序,它查看粘贴板的内容并尝试(希望)用它做一些智能的事情。 (该应用程序需要 iOS 9.3+,尽管此时我想大多数人都在使用 iOS 11.x。) 问题是我的设备 (iPhon
我已经在我们的应用程序中实现了 Handoff,当应用程序在前台或后台运行时,它可以很好地用于 Web 到应用程序的切换,反之亦然。 但是,如果应用未运行,那么如果用户从 Web 到应用切换启动应用,
我可以使用模拟器和一台设备测试 Handoff,还是只能使用两台物理设备进行测试? 最佳答案 苹果的文档: API Differences Simulator APIs don’t have all
我正在使用 Sirikit 与我的支付域应用程序集成,我需要与该应用程序进行交互。我阅读了Apple文档,他们要求使用通用框架。是否可以使用切换?如果是的话怎么办?如何从 Sirikit 调用父应用程
我在我的测试设备(不使用模拟器)和 SwiftUI 上使用最新版本的 Xcode、macOS、iOS 我的 UI 与 SwiftUI 和我的 UserActivity DelegateHandler:
我正在尝试从我的 WatchKit 应用程序发送一个字符串:我可以通过锁定屏幕正常启动应用程序,但是当调用 continueUserActivity 方法时,userActivity.userInfo
在 Cassandra 中,Hinted Handoff(HH) 只有在满足一致性级别时才会发生。此外,提示对客户来说是不可读的。在一致性级别 > ANY 的情况下,使用 HH 既不能提高写入可用性,
我有一个简单的项目,用户在 Apple Watch 上轻按一个按钮,然后在 iPhone 上播放一些音频,这很容易使用 openParentApplication 方法并在 AppDelegate 中
我正在按照 this 设置我的 apple-app-site-association 文件教程:Handoff 适用于 iOS 8,但 handoff 不适用于 iOS 9。我设置了一个免费的托管站点
我是一名优秀的程序员,十分优秀!