最近的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!最後有人指出 –
我有同樣的問題。 –