{"id":1823,"date":"2010-01-23T16:56:59","date_gmt":"2010-01-23T15:56:59","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=1823"},"modified":"2010-01-23T16:56:59","modified_gmt":"2010-01-23T15:56:59","slug":"t022-inseriamo-un-uitextfield-in-un-uialertview-by-icodeblog","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/t022-inseriamo-un-uitextfield-in-un-uialertview-by-icodeblog\/","title":{"rendered":"T#022 &#8211; Inseriamo un UITextField in un UIAlertView (by iCodeBlog)"},"content":{"rendered":"<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/01\/t012-final.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/01\/t012-final.png\" alt=\"Tutorial 022 - Screenshot\" title=\"t012-final\" width=\"185\" height=\"89\" class=\"alignleft size-full wp-image-1824\" \/><\/a> Iniziamo questo tutorial ringraziando gli amici di <a href=\"http:\/\/icodeblog.com\/\" target=\"_blank\">iCodeBlog<\/a> i quali ci hanno gentilmente concesso la traduzione su devAPP.it dei loro interessantissimi Tutorial. Da oggi, quindi, oltre a gustarvi i tutorial dei nostri autori, avrete modo di imparare qualcosa di nuovo anche grazie ai tutorial di <strong>iCodeBlog<\/strong>. Inauguriamo questa nuova collaborazione con un <a href=\"http:\/\/icodeblog.com\/2009\/11\/09\/iphone-coding-tutorial-inserting-a-uitextfield-in-a-uialertview\/\" target=\"_blank\">tutorial di AppStoreMod<\/a> che ci mostra come inserire un UITextField all&#8217;interno di un UIAlertView. Tutorial molto semplice quindi, ce la caveremo con poche righe di codice. Imparerete ad usare CGAffineTransorm e a creare un UITextField via codice.<!--more--><\/p>\n<p>Qui a sinistra e in basso due screenshots che mostrano il risultato che vogliamo ottenere:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/01\/t012-IS.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/01\/t012-IS.png\" alt=\"\" title=\"Tutorial 022 - Screenshot programma in esecuzione\" width=\"325\" height=\"485\" class=\"aligncenter size-full wp-image-1825\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/01\/t012-IS.png 325w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/01\/t012-IS-201x300.png 201w\" sizes=\"auto, (max-width: 325px) 100vw, 325px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Non perdiamoci in chiacchere e iniziamo subito con il nostro tutorial..<\/p>\n<h4>1. Creiamo un nuovo progetto &#8220;View Based Application&#8221;<\/h4>\n<p>Potete chiamarlo come meglio preferite, noi lo abbiamo chiamato &#8220;TextFieldInAlert&#8221;.<\/p>\n<h4>2. Implementiamo il codice<\/h4>\n<p>Aprite il file viewcontroller.m o se avete chiamato il progetto TextFieldInAlert come noi aprite TextFieldInAlert.m. Cercate al suo interno il metodo -(void)viewDidLoad e &#8220;scommentatelo&#8221;. Inserite quindi al suo interno il seguente codice:<\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\n- (void)viewDidLoad {\r\n\r\n[super viewDidLoad];\r\n\r\nUIAlertView *alert = [[UIAlertView alloc] initWithTitle:@\"Enter Name Here\" message:@\"this gets covered!\"\r\n\r\ndelegate:self cancelButtonTitle:@\"Dismiss\" otherButtonTitles:@\"OK!\", nil];\r\n\r\nUITextField *myTextField = [[UITextField alloc] initWithFrame:CGRectMake(12, 45, 260, 25)];\r\n\r\n[myTextField setBackgroundColor:[UIColor whiteColor]];\r\n\r\n<div class=\"alert\"><button type=\"button\" class=\"close\">&#215;<\/button><div class=\"clear\"><\/div><\/div>;\r\n\r\n<div class=\"alert\"><button type=\"button\" class=\"close\">&#215;<\/button><div class=\"clear\"><\/div><\/div>;\r\n\r\n<div class=\"alert\"><button type=\"button\" class=\"close\">&#215;<\/button><div class=\"clear\"><\/div><\/div>;\r\n\r\n[myTextField release];\r\n}\r\n<\/pre>\n<p>In questo modo non facciamo altro che creare semplicemente un UIAlertView di nome alert a cui aggiungiamo successivamente un UITextField di nome myTextField sottoforma di Subview, il tutto via codice. <\/p>\n<p>Avrete sicuramente notato il messaggio&#8221;this gets covered!&#8221; (che viene poi nascosto dall&#8217;UITextField in fase di esecuzione del programma) inserito nell&#8217;UIAlertView, senza avremmo avuto dei problemi nella visualizzazione grafica con fastidiose sovrapposizioni degli elementi. Potete provare a togliere questa porzione di cocide e vedere cosa succede. Clicchiamo ora su &#8220;Build and Run&#8221; e proviamo l&#8217;applicazione. Come potete vedere abbiamo ora l&#8217;UITextField all&#8217;interno del nostro UIAlertView. Ora provate a toccare l&#8217;UITextField. Uh oh, perch\u00e8 la tastiera copre l&#8217;UIAlertView? Ecco una semplice soluzione per sitemare questo inconveniente. Dobbiamo giusto aggiungere due linee di codice e avremo risolto questo problema. Aggiungete queste righe al vostro codice:<\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\nCGAffineTransform myTransform = CGAffineTransformMakeTranslation(0, 60);\r\n\r\n<div class=\"alert\"><button type=\"button\" class=\"close\">&#215;<\/button><div class=\"clear\"><\/div><\/div>;\r\n<\/pre>\n<p>Il vostro codice al completo dovrebbe ora quindi essere questo:<\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\nUIAlertView *alert = [[UIAlertView alloc] initWithTitle:@\u201dEnter Name Here\u201d message:@\u201dthis gets covered!\u201d delegate:self cancelButtonTitle:@\u201dDismiss\u201d otherButtonTitles:@\u201dOK!\u201d, nil];\r\n\r\nUITextField *myTextField = [[UITextField alloc] initWithFrame:CGRectMake(12, 45, 260, 25)];\r\n\r\nCGAffineTransform myTransform = CGAffineTransformMakeTranslation(0, 60);\r\n\r\n<div class=\"alert\"><button type=\"button\" class=\"close\">&#215;<\/button><div class=\"clear\"><\/div><\/div>;\r\n\r\n[myTextField setBackgroundColor:[UIColor whiteColor]];\r\n\r\n<div class=\"alert\"><button type=\"button\" class=\"close\">&#215;<\/button><div class=\"clear\"><\/div><\/div>;\r\n\r\n<div class=\"alert\"><button type=\"button\" class=\"close\">&#215;<\/button><div class=\"clear\"><\/div><\/div>;\r\n\r\n<div class=\"alert\"><button type=\"button\" class=\"close\">&#215;<\/button><div class=\"clear\"><\/div><\/div>;\r\n\r\n[myTextField release];\r\n<\/pre>\n<p>Se cliccate su &#8220;Build and Run&#8221;, noterete ora che l&#8217;UITextField \u00e8 leggermente pi\u00f9 grande e quando toccherete l&#8217;UITextField, la tastiera non la coprer\u00e0 pi\u00f9. Questo grazieproprio a CGAffineTransform.<br \/>\nAncora grazie a <strong>iCodeBlog<\/strong>, alla prossima!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Iniziamo questo tutorial ringraziando gli amici di iCodeBlog i quali ci hanno gentilmente concesso la traduzione su&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[1,93,92,23],"class_list":["post-1823","post","type-post","status-publish","format-standard","hentry","category-tutorial-pratici","tag-tutorial-pratici","tag-uialertview","tag-uitextview","tag-xcode"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/1823","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=1823"}],"version-history":[{"count":19,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/1823\/revisions"}],"predecessor-version":[{"id":1853,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/1823\/revisions\/1853"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=1823"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=1823"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=1823"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}