'UIPastebaord.general.hasStrings' 不适用于 iOS 14.0
'UIPastebaord.general.hasStrings' not working on iOS 14.0
我提供了一个自定义键盘应用程序。
我正在使用下面的代码检查“完全访问”以激活一些功能。这是我几年前通过这个网站发现的一个有价值的代码。但是我发现下面的代码在 iOS 14 上没有 运行。
UIPasteboard.general.hasStrings 总是 return 错误。 hasImages/hasColors/hasURLs 全部 return 错误。但这似乎不是真的。如果粘贴,则有以前复制的内容或仅粘贴了“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”和“realm”更新到最新版本
修复 pod 更新后的问题
尝试通过在 iOS 设置中打开 on/off 允许完全访问来不断修改代码
Google 搜索…
如果有人知道更好的解决方案,请告诉我。或者,我想为您提供有关问题原因的线索。希望有同样问题的人一起考虑。
感谢您阅读到这里。我会等待某人的帮助。请
我们发现了同样的问题。我们目前的解决方案是在检查完全访问时使用 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
}
我提供了一个自定义键盘应用程序。 我正在使用下面的代码检查“完全访问”以激活一些功能。这是我几年前通过这个网站发现的一个有价值的代码。但是我发现下面的代码在 iOS 14 上没有 运行。 UIPasteboard.general.hasStrings 总是 return 错误。 hasImages/hasColors/hasURLs 全部 return 错误。但这似乎不是真的。如果粘贴,则有以前复制的内容或仅粘贴了“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”和“realm”更新到最新版本 修复 pod 更新后的问题 尝试通过在 iOS 设置中打开 on/off 允许完全访问来不断修改代码 Google 搜索…
如果有人知道更好的解决方案,请告诉我。或者,我想为您提供有关问题原因的线索。希望有同样问题的人一起考虑。
感谢您阅读到这里。我会等待某人的帮助。请
我们发现了同样的问题。我们目前的解决方案是在检查完全访问时使用 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
}