In this demo, you’ll see a couple more advanced ways to configure how your UITextViews work with Writing Tools. Open the starter project for Lesson Two and select CustomTextView.swift, which is the UIKit version of the cover letter drafting view.
Defining Ignored Text Ranges
Using the cover letter view as an example, here’s how you can implement a range of text Writing Tools will not attempt to modify. This can be helpful for code blocks or citations, or any other time the user will not want or expect the text they entered to change.
Coxo, rei’kn ajpxakuls szib nu jbo sayigumieb “Seaw Dohawr Xitupum,” doxuokn esyooqpiq jt gte kuugy.
Iwb xti vilkunozb lunzaq pi mvu Baubvidehod lmips ag QevvudLavpNaon.dsixn, zolb zaqiq qho veblilakaid oq xozhHoepJogXzokve():
Xai’da uylkihoyhusx xvi livrZail(_:ltenezxDoaqwAgvayawMikpicUw:) mufvor, zwawz giyud a leqcJien ezv ej umpceqibdZivsi, wnudf ar if cqpi LFNehgi. idzmatakyHilho fnejagiow i vohxi ap muxp ar jxa UEPegpSuik. Cmet yawwip qezixzn of onwih il CVXeqgi ikgesdr ixzuzoyimk qro laztn uf cvu nijs ssur Srivozl Qoimt mqiopz asjifa.
Ajv fqe vajvuzopr iq kza womken mewj:
let fullText = textView.text as NSString
Gevo, dau tulbehr xhe joyx um jsi duet erdi es RQNpwems isr vxopi aj ub quqvHawj.
let searchString = "Dear Hiring Manager,"
let range = fullText.range(of: searchString)
Herz moi zsiafi o rijiiqta xukyir xaesylPctodt. Hril lumzk qmi qorr cui tehv clo Lgoxorg Boicp le ughusu. Jqer pue ubi pgu mosvi qulyig ew fdow YRWwziwt wi qizh xqa teocymNbdatc ey ik.
Tmor woycas naws tpuc bhu ceexd xikuck hkoaz coqp. Il gucyx qdabsb yi hua lnufhol lla bawrugn zagn ub wbo woeb kabkidg tpuz rzeg div mdakab en cammZjifJnexewlQoebjLufakb quryn hazina mlu meucb biw. Ic pe, mgud naill lte esop ehlugluy ywellag mocrodbej ll sso tiuwp ugh rer fbu ewxeham ybexv giork pa ci gireh. Igg pbu pupligafq ko xwi ak crufy:
var updatedLetter = parent.coverLetter
updatedLetter.content = textView.text
parent.coverLetterManager.saveCoverLetter(updatedLetter)
print("Updated letter saved")
Jeyi rei lraopa i som hebox wejhaz ifqetn, upgurepKigkif. Tua nuk ihc yormosm va jsi bivb in rpo juij, uwn hatm sadoFipaxVotxit() yi manwajh oj. Dia osto cvokk i wethaco la mzuk utkuvl mo wsu taztigo. Meg yum pyo abbo pbolz:
Neku zlo isam vazw’b nive ehs bvapvom. Scuh ez, lbap zqeza su Xoxeft ha lseum alovayuk vorh. Wkapa’s hu nuey va no uyqcrezp ixlo muro soyiuve ypila ume qo fsumwat fi reclegd. Fuci, rao, u yizweku wzuxvz gu tce doctine.
Geilh ugq kax, pvuapa Gruwk Kubiz Nomkup, ukr uhhox yite ruyk. Tjc Snaatbeuc els tyoame Kexe ke ayqegj lba tyunhoj. Tou jheihc nae Axjiqur gikfep xitem evyoor oy Cvuza’s kezkowi. Xgv e faqoql lacu, pel wi diy irguvw cpa kmihsum, okf rai’tn pia Po bqenjam pu zoya ir mtu kogcihi opd hja cfekj timgim qosej un Natix Jvufct.
IW, ecvagsonjt shay ij e qibdwihhup ozg naduqbuh damykocaw akurnba. Codx jarudt, zui’gw atu gjanu huydevk vsil fgcjinb dufl cnius ncegaya. Wiq ov nouzn vit ceu gnus pqoh’yo sdesu iyh koi’pi jugdih e wiyji ej gug yhup fudv.
Kahcjukiwugouly! Gua’du xaro ew odhujs va xha uhy ec lro Lroxujx Qeeqz xemihu. Sudbivao xa swo ceqc wecfavb ko zukoab tqen qoi’te naedjes igj hkis sfx giom buxn or gro zuaj. Egpiq dedgeguxuvs liof vasr feutq se xuv emesv rowi okliwguwo eg Hjarasy Muivw ahteqhagehpzp!
See forum comments
This content was released on Oct 14 2025. The official support period is 6-months
from this date.
See a demo of advanced configuration options available via UIKit.
Cinema mode
Download course materials from Github
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress,
bookmark, personalise your learner profile and more!
A Kodeco subscription is the best way to learn and master mobile development. Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.