2016-09-17 1 views
5

Kürzlich hat iOS Update von iOS 10 & gibt es bestimmte Änderungen für Entwickler eine der Änderung ist jetzt können wir nicht überprüfen vollen Zugang die Art und Weise ermöglichen, haben wir vorher unterAllow Full Access Kontrolle in Tastaturen iOS10

gegeben
-(BOOL)isOpenAccessGranted{ 
    return [UIPasteboard generalPasteboard]; 
} 

Ich suchte die neuesten Developer Guide for UIPasteboard, war aber nicht in der Lage, es zu lösen. Hat jemand dafür eine richtige Lösung?

+0

ich gleiche Problem haben. –

Antwort

2

Ich habe dieses Problem behoben. iOS 10.0 und Swift 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 
     } 

    } 

} 

Verwendung wie folgt aus: -

if (isOpenAccessGranted()) 
{ 
    print("ACCESS : ON") 
} 
else{ 
    print("ACCESS : OFF") 
} 
+0

Glauben Sie nicht, dass das Setzen des "TEST" -Strings auf UIPasterbord allgemein den vorhandenen Text des Benutzers ersetzt? Ist das eine optimale Lösung? – iYoung

+0

Es ist Arbeit Ich habe UIPasteboard.generalPasteboard() verwendet. String statt UIPasteboard.general.hasStrings – kb920

+0

@mitul Ich habe es versucht, aber es ist Einfügen von TEST in OTT Textfeld, die nicht die richtige Lösung ist. – iYoung

0

auf iOS 10 Swift 3.0 und iOS 9

Verwenden #available(iOS 10.0, *) statt #available(iOSApplicationExtension 10.0, *)

Getestet
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) 
    } 
} 
+0

Wie können wir es in swift 2.2 tun? –

4

für Freunde, suchen Lösung in Objective-C, hier ist es

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: Dies ist nur eine Abhilfe

+0

Danke! Es funktioniert perfekt auf iOS 10. – Beny

+0

Hallo, können Sie erklären, ich habe versucht, den Code, den Sie erwähnen, aber es gibt immer nur Ja. Selbst wenn ich meine 3rd-Party-Tastatur entferne. –

0

Swift 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 
    } 
} 
3

iOS10 Lösung: Überprüfen Sie alle kopierfähigen Typen, wenn einer von ihnen verfügbar ist, haben Sie ansonsten den vollen Zugriff.

P.S: Neue Telefon und nach iOS Update Fällen sind behoben.

- Swift 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 
     } 
    } 
} 

- Swift 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) 
    } 
} 
+0

Gute Antwort so weit –

+0

@Paul Danke! Schließlich weist jemand darauf hin –

Verwandte Themen