{"id":32005,"date":"2023-01-26T03:48:20","date_gmt":"2023-01-25T22:18:20","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/"},"modified":"2023-01-26T03:48:20","modified_gmt":"2023-01-25T22:18:20","slug":"solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/","title":{"rendered":"[Solved] How to set up UITextFieldDelegate for multiple text fields? [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-71302566\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"71302566\" data-parentid=\"71300679\" data-score=\"1\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>If your goal is to have all three text fields follow the same rule, set the <code>delegate<\/code> for all three. The <code>shouldChangeCharactersIn<\/code> only needs to check the \u201ccurrent\u201d text field into which the user is currently typing.<\/p>\n<p>A minor observation, but I also would avoid recreating the <code>CharacterSet<\/code> of allowed characters repeatedly. You can simply make that a property.<\/p>\n<p>That reduces it down to something like:<\/p>\n<pre class=\"lang-swift prettyprint-override\"><code>private let allowedCharacters = CharacterSet(charactersIn: \"ABCDEFG\u011eHI\u0130JKLMNO\u00d6PRS\u015eTU\u00dcVYZ\")\n\nfunc textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -&gt; Bool {\n    if (textField.text?.count ?? 0) - range.length + string.count &gt; 1 {\n        return false\n    }\n\n    return allowedCharacters.isSuperset(of: CharacterSet(charactersIn: string.localizedUppercase))\n}\n<\/code><\/pre>\n<hr>\n<p>If you want them only entering uppercase characters, I would:<\/p>\n<ul>\n<li>\n<p>Change the keyboard capitalization to \u201cAll Characters\u201d, so they are more likely to not enter lowercase letters:<\/p>\n<p><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2023\/01\/Solved-How-to-set-up-UITextFieldDelegate-for-multiple-text-fields.png\"><img decoding=\"async\" src=\"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2023\/01\/Solved-How-to-set-up-UITextFieldDelegate-for-multiple-text-fields.png\" alt=\"enter image description here\"><\/a><\/p>\n<\/li>\n<li>\n<p>Optionally change the capitalization by adding an \u201cediting changed\u201d action for your text field to:<\/p>\n<pre class=\"lang-swift prettyprint-override\"><code>@IBAction func editingChanged(_ textField: UITextField) {\n    textField.text = textField.text?.localizedUppercase\n}\n<\/code><\/pre>\n<p>You might have to experiment whether you want to use <code>localizedUppercase<\/code> or <code>uppercased()<\/code> or <code>uppercased(with:)<\/code>.<\/p>\n<p>Note, this \u201cuppercase the whole string\u201d logic is a little sloppy. If you were allowing multi-character strings in your input, you really would want to capture where the cursor was and restore it. (Otherwise it could be an annoying UX where if the user is changing the first character of a multi-character string, the cursor would jump to the end.) E.g., a simple rendition might be:<\/p>\n<pre class=\"lang-swift prettyprint-override\"><code>@IBAction func editingChanged(_ textField: UITextField) {\n    let range = textField.selectedTextRange\n    textField.text = textField.text?.localizedUppercase\n    textField.selectedTextRange = range\n}\n<\/code><\/pre>\n<p>But for your single character input, the simpler example, above, should be sufficient.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">5<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved How to set up UITextFieldDelegate for multiple text fields? [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] If your goal is to have all three text fields follow the same rule, set the delegate for all three. The shouldChangeCharactersIn only needs to check the \u201ccurrent\u201d text field into which the user is currently typing. A minor observation, but I also would avoid recreating the CharacterSet of allowed characters repeatedly. You can &#8230; <a title=\"[Solved] How to set up UITextFieldDelegate for multiple text fields? [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/\" aria-label=\"More on [Solved] How to set up UITextFieldDelegate for multiple text fields? [closed]\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[522,1059],"class_list":["post-32005","post","type-post","status-publish","format-standard","hentry","category-solved","tag-swift","tag-uitextfield"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] How to set up UITextFieldDelegate for multiple text fields? [closed] - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] How to set up UITextFieldDelegate for multiple text fields? [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] If your goal is to have all three text fields follow the same rule, set the delegate for all three. The shouldChangeCharactersIn only needs to check the \u201ccurrent\u201d text field into which the user is currently typing. A minor observation, but I also would avoid recreating the CharacterSet of allowed characters repeatedly. You can ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-25T22:18:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2023\/01\/Solved-How-to-set-up-UITextFieldDelegate-for-multiple-text-fields.png\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] How to set up UITextFieldDelegate for multiple text fields? [closed]\",\"datePublished\":\"2023-01-25T22:18:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/\"},\"wordCount\":221,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2023\/01\/Solved-How-to-set-up-UITextFieldDelegate-for-multiple-text-fields.png\",\"keywords\":[\"swift\",\"uitextfield\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/\",\"name\":\"[Solved] How to set up UITextFieldDelegate for multiple text fields? [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2023\/01\/Solved-How-to-set-up-UITextFieldDelegate-for-multiple-text-fields.png\",\"datePublished\":\"2023-01-25T22:18:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/#primaryimage\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2023\/01\/Solved-How-to-set-up-UITextFieldDelegate-for-multiple-text-fields.png\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2023\/01\/Solved-How-to-set-up-UITextFieldDelegate-for-multiple-text-fields.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] How to set up UITextFieldDelegate for multiple text fields? [closed]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] How to set up UITextFieldDelegate for multiple text fields? [closed] - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] How to set up UITextFieldDelegate for multiple text fields? [closed] - JassWeb","og_description":"[ad_1] If your goal is to have all three text fields follow the same rule, set the delegate for all three. The shouldChangeCharactersIn only needs to check the \u201ccurrent\u201d text field into which the user is currently typing. A minor observation, but I also would avoid recreating the CharacterSet of allowed characters repeatedly. You can ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/","og_site_name":"JassWeb","article_published_time":"2023-01-25T22:18:20+00:00","og_image":[{"url":"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2023\/01\/Solved-How-to-set-up-UITextFieldDelegate-for-multiple-text-fields.png","type":"","width":"","height":""}],"author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] How to set up UITextFieldDelegate for multiple text fields? [closed]","datePublished":"2023-01-25T22:18:20+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/"},"wordCount":221,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"image":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/#primaryimage"},"thumbnailUrl":"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2023\/01\/Solved-How-to-set-up-UITextFieldDelegate-for-multiple-text-fields.png","keywords":["swift","uitextfield"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/","name":"[Solved] How to set up UITextFieldDelegate for multiple text fields? [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/#primaryimage"},"image":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/#primaryimage"},"thumbnailUrl":"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2023\/01\/Solved-How-to-set-up-UITextFieldDelegate-for-multiple-text-fields.png","datePublished":"2023-01-25T22:18:20+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/#primaryimage","url":"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2023\/01\/Solved-How-to-set-up-UITextFieldDelegate-for-multiple-text-fields.png","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/uploads\/2023\/01\/Solved-How-to-set-up-UITextFieldDelegate-for-multiple-text-fields.png"},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-how-to-set-up-uitextfielddelegate-for-multiple-text-fields-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] How to set up UITextFieldDelegate for multiple text fields? [closed]"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/32005","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=32005"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/32005\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=32005"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=32005"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=32005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}