{"id":9916,"date":"2022-09-21T09:29:11","date_gmt":"2022-09-21T03:59:11","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/"},"modified":"2022-09-21T09:29:11","modified_gmt":"2022-09-21T03:59:11","slug":"solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/","title":{"rendered":"[Solved] How to set focus on an input that works on IOS supporting devices?"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-44892622\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"44892622\" data-parentid=\"44892391\" 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>You can use the following:<\/p>\n<pre><code>@Component({\n  selector: 'my-app',\n  template: `\n    &lt;div *ngFor=\"let item of [1,2,3,4]; let i = index\"&gt;\n      &lt;button type=\"button\" (click)=\"display(i)\"&gt;Click to show and set focus&lt;\/button&gt;\n      &lt;input #theInput *ngIf=\"show === i\" type=\"text\" &gt;\n    &lt;\/div&gt;\n  `,\n})\nexport class App {\n  show = -1; \n\n  @ViewChild('theInput')\n  private theInput;\n\n  constructor() {\n  }\n\n  display(i) {\n    this.show = i;\n    setTimeout(() =&gt; this.theInput.nativeElement.focus(), 0);\n  }\n}\n<\/code><\/pre>\n<p>I&#8217;m not sure if there is something more elegant than the usage of setTimeout, but since the input is only added to the DOM after the change detection which is triggered by the change of <code>show<\/code>, <code>theInput<\/code> is undefined (or the previously shown input) at that time.<\/p>\n<p>Demo: <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/plnkr.co\/edit\/A0ZO0hyuR61nUdiSvzFj?p=preview\">http:\/\/plnkr.co\/edit\/A0ZO0hyuR61nUdiSvzFj?p=preview<\/a><\/p>\n<p>Edit:<\/p>\n<p>It turns out there is something more elegant: AfterViewChecked:<\/p>\n<pre><code>export class App {\n  show = -1; \n  shouldFocus = false;\n\n  @ViewChild('theInput')\n  private theInput;\n\n  constructor() {\n  }\n\n  display(i) {\n    this.show = i;\n    this.shouldFocus = true;\n  }\n\n  ngAfterViewChecked() {\n    if (this.shouldFocus) {\n      this.theInput.nativeElement.focus();\n      this.shouldFocus = false;\n    }\n  }\n}\n<\/code><\/pre>\n<p>See the updated demo: <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/plnkr.co\/edit\/lXTRDGLKwkAAukEQGQjq?p=preview\">http:\/\/plnkr.co\/edit\/lXTRDGLKwkAAukEQGQjq?p=preview<\/a><\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">3<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved How to set focus on an input that works on IOS supporting devices? <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] You can use the following: @Component({ selector: &#8216;my-app&#8217;, template: ` &lt;div *ngFor=&#8221;let item of [1,2,3,4]; let i = index&#8221;&gt; &lt;button type=&#8221;button&#8221; (click)=&#8221;display(i)&#8221;&gt;Click to show and set focus&lt;\/button&gt; &lt;input #theInput *ngIf=&#8221;show === i&#8221; type=&#8221;text&#8221; &gt; &lt;\/div&gt; `, }) export class App { show = -1; @ViewChild(&#8216;theInput&#8217;) private theInput; constructor() { } display(i) { this.show = &#8230; <a title=\"[Solved] How to set focus on an input that works on IOS supporting devices?\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/\" aria-label=\"More on [Solved] How to set focus on an input that works on IOS supporting devices?\">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":[732,1075,471,333,651],"class_list":["post-9916","post","type-post","status-publish","format-standard","hentry","category-solved","tag-angular","tag-focus","tag-ios","tag-javascript","tag-typescript"],"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 focus on an input that works on IOS supporting devices? - 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-focus-on-an-input-that-works-on-ios-supporting-devices\/\" \/>\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 focus on an input that works on IOS supporting devices? - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] You can use the following: @Component({ selector: &#039;my-app&#039;, template: ` &lt;div *ngFor=&quot;let item of [1,2,3,4]; let i = index&quot;&gt; &lt;button type=&quot;button&quot; (click)=&quot;display(i)&quot;&gt;Click to show and set focus&lt;\/button&gt; &lt;input #theInput *ngIf=&quot;show === i&quot; type=&quot;text&quot; &gt; &lt;\/div&gt; `, }) export class App { show = -1; @ViewChild(&#039;theInput&#039;) private theInput; constructor() { } display(i) { this.show = ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-21T03:59:11+00:00\" \/>\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-focus-on-an-input-that-works-on-ios-supporting-devices\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] How to set focus on an input that works on IOS supporting devices?\",\"datePublished\":\"2022-09-21T03:59:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/\"},\"wordCount\":113,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"angular\",\"focus\",\"ios\",\"javascript\",\"typescript\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/\",\"name\":\"[Solved] How to set focus on an input that works on IOS supporting devices? - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-09-21T03:59:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] How to set focus on an input that works on IOS supporting devices?\"}]},{\"@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 focus on an input that works on IOS supporting devices? - 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-focus-on-an-input-that-works-on-ios-supporting-devices\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] How to set focus on an input that works on IOS supporting devices? - JassWeb","og_description":"[ad_1] You can use the following: @Component({ selector: 'my-app', template: ` &lt;div *ngFor=\"let item of [1,2,3,4]; let i = index\"&gt; &lt;button type=\"button\" (click)=\"display(i)\"&gt;Click to show and set focus&lt;\/button&gt; &lt;input #theInput *ngIf=\"show === i\" type=\"text\" &gt; &lt;\/div&gt; `, }) export class App { show = -1; @ViewChild('theInput') private theInput; constructor() { } display(i) { this.show = ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/","og_site_name":"JassWeb","article_published_time":"2022-09-21T03:59:11+00:00","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-focus-on-an-input-that-works-on-ios-supporting-devices\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] How to set focus on an input that works on IOS supporting devices?","datePublished":"2022-09-21T03:59:11+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/"},"wordCount":113,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["angular","focus","ios","javascript","typescript"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/","url":"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/","name":"[Solved] How to set focus on an input that works on IOS supporting devices? - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-09-21T03:59:11+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-how-to-set-focus-on-an-input-that-works-on-ios-supporting-devices\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] How to set focus on an input that works on IOS supporting devices?"}]},{"@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\/9916","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=9916"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/9916\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=9916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=9916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=9916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}