2016-06-18 15 views
6

Vorrei evidenziare una parte di testo in una UITextView come Pages per iOS o Safari per iOS. Cerco la documentazione ma non riesco a trovare un modo per farlo, forse perché sono un principiante nello sviluppo di iOS e mi mancano alcune informazioni cruciali. Qualcuno può aiutarmi?Come evidenziare il testo in un textView in Swift?

Schermata di pagine per iOS:

Pages for iOS

Schermata di Safari per iOS:

Safari for iOS

+1

Hai provato questo? http://stackoverflow.com/questions/26454037/uitextview-text-selection-and-highlight-jumping-in-ios-8 –

+0

I Vishnu gondlekar, grazie per il link. Preferisco evitare di impostare NSAttributedString, mi piacerebbe utilizzare alcune funzionalità di evidenziazione, se possibile ... – Cue

+0

Ciao Vishnu, un commento di Duncan C mi fa capire che non c'è una soluzione facile accessibile a causa della mia mancanza di conoscenza del testo kit, quindi alla fine ho usato NSAttributoString come hai suggerito: 'mainTextField.textStorage? .setAttributedString (attributeText.copy() as! NSAttributedString)' Grazie. – Cue

risposta

1

Se avete solo bisogno di evidenziare un unico blocco contiguo di testo è possibile impostare la selezione a livello di programmazione I tuoi esempi mostrano tuttavia più parti discontinue. Per questo dovrai usare una stringa attribuita. Non c'è altra funzione di evidenziazione fornita dal sistema. (Ci potrebbe essere una libreria di terze parti che offre questo però - dovrai cercare.)

+0

Grazie per la risposta Duncan C. Ho letto [questo tutorial] (https://www.raywenderlich.com/86205/nsregularexpression-swift-tutorial) dove l'autore dice: "Nota: la tua app utilizza la proprietà NSAttributedString di UITextView per evidenziare i risultati della ricerca. [...] Si potrebbe anche implementare la funzionalità di evidenziazione usando il Text Kit ", quindi ho pensato che esistesse un metodo alternativo. – Cue

+1

Il kit di testo è ancora più basso delle stringhe attribuite. Sì, potresti farlo ma non lo consiglierei. –

Problemi correlati