最近的iOS拥有10的iOS的更新&有开发商一定的变化的变化之一是现在我们不能检查允许全面进入我们以前没有下文允许在键盘完全访问检查iOS10
给出的方法-(BOOL)isOpenAccessGranted{
return [UIPasteboard generalPasteboard];
}
我搜索了最新的Developer Guide for UIPasteboard,但无法解决它。有没有人有适当的解决方案。
最近的iOS拥有10的iOS的更新&有开发商一定的变化的变化之一是现在我们不能检查允许全面进入我们以前没有下文允许在键盘完全访问检查iOS10
给出的方法-(BOOL)isOpenAccessGranted{
return [UIPasteboard generalPasteboard];
}
我搜索了最新的Developer Guide for UIPasteboard,但无法解决它。有没有人有适当的解决方案。
我修复了这个问题。 的iOS 10.0和夫特3.0
func isOpenAccessGranted() -> Bool {
if #available(iOSApplicationExtension 10.0, *) {
UIPasteboard.general.string = "TEST"
if UIPasteboard.general.hasStrings {
// Enable string-related control...
UIPasteboard.general.string = ""
return true
}
else
{
UIPasteboard.general.string = ""
return false
}
} else {
// Fallback on earlier versions
if UIPasteboard.general.isKind(of: UIPasteboard.self) {
return true
}else
{
return false
}
}
}
使用这样的: -
if (isOpenAccessGranted())
{
print("ACCESS : ON")
}
else{
print("ACCESS : OFF")
}
测试在iOS 10夫特3.0和iOS 9
使用#available(iOS 10.0, *)
代替#available(iOSApplicationExtension 10.0, *)
func isOpenAccessGranted() -> Bool {
if #available(iOS 10.0, *) {
var originalString = UIPasteboard.general.string
if(!(originalString != nil)){
originalString = ""
}
UIPasteboard.general.string = "Test"
if UIPasteboard.general.hasStrings {
UIPasteboard.general.string = originalString
return true
}else{
return false
}
}else{
return UIPasteboard.general.isKind(of: UIPasteboard.self)
}
}
我们如何在swift中做到这一点? –
朋友,寻找在Objective-C的解决方案,这是
NSOperatingSystemVersion operatingSystem= [[NSProcessInfo processInfo] operatingSystemVersion];
if (operatingSystem.majorVersion>=10) {
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
pasteboard.string = @"Hey";
if (pasteboard.hasStrings) {
pasteboard.string = @"";
return true;
}
else
{
pasteboard.string = @"";
return false;
}
}
else
{
return [UIPasteboard generalPasteboard];
}
PS:这只是一种变通方法
谢谢!它可以在iOS 10上完美工作。 – Beny
嗨,你能解释我已经尝试了你提到的代码吗?但它总是只给出Yes。即使我删除了我的第三方键盘。 –
斯威夫特3
static func isOpenAccessGranted() -> Bool {
if #available(iOS 10.0, iOSApplicationExtension 10.0, *) {
let value = UIPasteboard.general.string
UIPasteboard.general.string = "checkOpenedAccess"
let hasString = UIPasteboard.general.string != nil
if let _ = value, hasString {
UIPasteboard.general.string = value
}
return hasString
}
else {
return UIPasteboard(name: UIPasteboardName(rawValue: "checkOpenedAccess"), create: true) != nil
}
}
iOS10解决方案:检查所有可复制类型,如果其中一个可用,则获得完全访问权限,否则不可访问。
P.S:新手机和iOS更新案例已修复。
- 斯威夫特2.3--
static func isFullAccessGranted() -> Bool
{
if #available(iOSApplicationExtension 10.0, *)
{
if UIPasteboard.generalPasteboard().hasStrings
{
return true
}
else if UIPasteboard.generalPasteboard().hasURLs
{
return true
}
else if UIPasteboard.generalPasteboard().hasColors
{
return true
}
else if UIPasteboard.generalPasteboard().hasImages
{
return true
}
else // In case the pasteboard is blank
{
UIPasteboard.generalPasteboard().string = ""
if UIPasteboard.generalPasteboard().hasStrings
{
return true
}else
{
return false
}
}
} else {
// before iOS10
if UIPasteboard.generalPasteboard().isKindOfClass(UIPasteboard)
{
return true
}else
{
return false
}
}
}
- 斯威夫特3.0--
static func isFullAccessGranted() -> Bool
{
if #available(iOSApplicationExtension 10.0, *)
{
if UIPasteboard.general.hasStrings
{
return true
}
else if UIPasteboard.general.hasURLs
{
return true
}
else if UIPasteboard.general.hasColors
{
return true
}
else if UIPasteboard.general.hasImages
{
return true
}
else // In case the pasteboard is blank
{
UIPasteboard.general.string = ""
if UIPasteboard.general.hasStrings
{
return true
}else
{
return false
}
}
} else {
// before iOS10
return UIPasteboard.general.isKind(of: UIPasteboard.self)
}
}
目前为止的最佳答案 –
@Paul Thanks!最后有人指出 –
我有同样的问题。 –