NSAttributedString und Links auf iOS

8

Ich versuche, einen Hyperlink zu bestimmten Teilen meines Textes hinzuzufügen, die mit CoreText behandelt und gezeichnet werden.

Laut Apples Dokumentation zu CoreText sollte ich addAttribute:NSLinkAttributeName verwenden, aber auf iOS (4.3) heißt es, dass es NSLinkAttributeName nicht kennt. In meinen Dokumenten-Suchen sieht es so aus, als ob NSLinkAttributeName nur noch auf dem Mac existiert.

Ist es auf iOS verfügbar und ich vermisse gerade etwas? Wenn es nicht verfügbar ist, wie kann ich einen Hyperlink für einen Teil eines Textes mit NSMutableAttributedString und CoreText erstellen?

Danke

    
kdbdallas 24.04.2011, 19:45
quelle

5 Antworten

6

Jeremy hat JTextView veröffentlicht, ein coretextbasiertes UITextView -Analog, das attributierten Text einschließlich Links unterstützt.

Auf den Punkt gebracht, JTextView:

  • Erzeugt ein eigenes Attribut für Links, indem ein benutzerdefinierter Name für den Attributnamen verwendet wird und der Attributwert eine Darstellung der entsprechenden URL enthält
  • In -drawRect: wird ein Datendetektor für Links verwendet. Wenn ein Link gefunden wurde, wird sein benutzerdefiniertes Attribut für den entsprechenden Bereich
  • festgelegt
  • In seiner Erkennungsmethode für die Tip-Geste erhält es den Zeilenrahmen, der den Tap-Punkt enthält. Für jeden Glyph-Lauf in dieser Zeile erhält er seine Attribute und prüft, ob sie das benutzerdefinierte Attribut für Links enthalten. Wenn ja, öffnet es die URL.
user557219 24.04.2011, 23:14
quelle
11

Ab iOS 7 unterstützt UITextView Links in attributierten Strings:

%Vor%

Links werden standardmäßig als blauer Text gerendert. Sie können den Stil mit der Eigenschaft UITextView von linkTextAttributes ändern.

Wenn Sie editable auf NO für UITextView setzen, werden die Links tappbar.

    
jonahb 17.12.2013 20:14
quelle
2

Ich weiß, das ist eine alte Frage, aber ...

Versuchen Sie es mit NSMutableAttributedString. Es hat zwei Methoden für Attribute:

%Vor%

und

%Vor%     
Ray Mckaig 06.01.2012 19:18
quelle
2

Verwenden Sie ein UITextView, es analysiert Ihren Text und macht Links in blau unterstrichene Hyperlinks:

%Vor%     
Siegfoult 14.06.2013 16:06
quelle
0

Ja, es existiert nicht, wenn Sie Ihre Suche auf die iOS-Bibliothek beschränken, erhalten Sie keine Ergebnisse für NSLinkAttributeName . Es ist nicht da ... offiziell, vielleicht privat?

Dieser nette Artikel erwähnt Hyperlinks, zeigt aber kein Beispiel. Ich bezweifle, dass dies mit öffentlichen API-Methoden möglich ist.

    
Nick Weaver 24.04.2011 19:49
quelle

Tags und Links