我正在提供一个自定义键盘应用程序。 我正在检查以下代码的“完全访问权限”以激活某些功能。这是我几年前通过该网站发现的有价值的代码。但是我发现下面的代码无法在iOS 14上运行。 UIPasteboard.general.hasStrings始终返回false。 hasImages / hasColors / hasURLs均返回false。但这似乎不是真实的。如果您粘贴,则有一个先前复制的内容,或者仅粘贴了“ TEST”。 “ TEST”是用于检查目的,不应打印。
let pasty = UIPasteboard.general
if pasty.hasURLs || pasty.hasColors || pasty.hasStrings || pasty.hasImages {
hasFullAccess = true
} else {
pasty.string = "TEST"
if pasty.hasStrings {
hasFullAccess = true
pasty.string = ""
}
}
我正在深思自己仅从中发现的内容。此外,对于使用我的应用程序的用户,我真的感到很抱歉。我在这里问是因为我想以某种方式解决它。因此,如果有人知道如何修复它,我想告诉您。
到目前为止我所做的 使用“ cocoapod”将“ firebase”和“领域”更新为最新版本 吊舱更新后解决问题 尝试通过在iOS设置中打开/关闭“允许完全访问权限”来连续修改代码 Google搜索...
让我知道是否有人知道更好的解决方案。或者,我想给您提供有关问题原因的线索。我希望有相同问题的人可以一起考虑。
感谢您阅读本文。我会等待别人的帮助。请。
答案 0 :(得分:0)
我们发现了同样的问题。我们当前的解决方案是在检查完全访问权限时使用viewWillAppear而不是viewDidLoad。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// We need to check fullAccess after view has appeared in order for UIPasteboard to be available.
if self.hasFullyAccess() == false {
// Do whatever.
}
}
public func hasFullyAccess() -> Bool {
var hasFullAccess = false
if #available(iOS 10.0, *) {
let pasty = UIPasteboard.general
if pasty.hasURLs || pasty.hasColors || pasty.hasStrings || pasty.hasImages {
hasFullAccess = true
} else {
// We test if we can put something in UIPasteboard, if anything we have access.
pasty.string = "TEST"
if pasty.hasStrings {
hasFullAccess = true
pasty.string = "" // Removes string from pasty again.
}
}
}
return hasFullAccess
}