{"id":2201,"date":"2010-02-25T12:13:18","date_gmt":"2010-02-25T11:13:18","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=2201"},"modified":"2010-02-25T12:13:18","modified_gmt":"2010-02-25T11:13:18","slug":"uitextfield-guida-completa-all-uso-by-icodeblog","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/uitextfield-guida-completa-all-uso-by-icodeblog\/","title":{"rendered":"UITextField &#8211; Guida completa all&#8217;uso (by iCodeBlog)"},"content":{"rendered":"<p>Un ringraziamento a <strong>brandontreb<\/strong> di <a href=\"http:\/\/icodeblog.com\/2010\/01\/04\/uitextfield-a-complete-api-overview\/\" target=\"_blank\">iCodeBlog<\/a> per questa utile e completa guida sull&#8217;UITextField. L&#8217;UITextField \u00e8 probabilmente uno degli oggetti pi\u00f9 utilizzati nelle interfacce grafiche delle applicazioni iPhone, che permette all&#8217;untente di interagire con l&#8217;applicazione inviando dati al programma tramite la tastiera. Questo strumento offre inoltre un gran numero di altre funzionalit\u00e0 aggiuntive.<!--more--><\/p>\n<h4>Text Attributes<\/h4>\n<p>Gli attributi di testo si riferiscono proprio al testo contenuto all&#8217;intenro dell&#8217;UITextField.<\/p>\n<table>\n<tr>\n<td>text<\/td>\n<td>Il testo mostrato nell&#8217;UITextField<\/td>\n<\/tr>\n<tr>\n<td>placeholder<\/td>\n<td>Il testo che viene visualizzato prima che l&#8217;utente sciva qualcosa. Questo testo \u00e8 in genere di un colore pi\u00f9 chiaro rispetto al testo principale per indicare che sar\u00e0 sostituito.<\/td>\n<\/tr>\n<tr>\n<td>font<\/td>\n<td>Il font del testo che deve essere mostrato.<\/td>\n<\/tr>\n<tr>\n<td>textColor<\/td>\n<td>Il colore del testo mostrato<\/td>\n<\/tr>\n<tr>\n<td>textAlignment<\/td>\n<td>Come il testo \u00e8 allineato all&#8217;interno dell&#8217; UITextField. I valori possibili per questo attributo sono UITextAlignmentLeft, UITextAlignmentRight, UITextAlignmentCenter<\/td>\n<\/tr>\n<\/table>\n<p>Qui in basso alcuni esempi dell&#8217;uso di queste propriet\u00e0:<\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\n\/\/ Impostare il testo\r\n[myTextField setText:@\"This is some text!\"];\r\n \r\n\/\/ Impostare il placeholder\r\n[myTextField setPlaceholder:@\"Type text here\"];\r\n \r\n\/\/ Settare il font.\r\n[myTextField setFont:[UIFont fontWithName:@\"Times New Roman\" size:14]];\r\n \r\n\/\/ Settare il colore del testo\r\n[myTextField setTextColor:[UIColor blueColor]];\r\n \r\n\/\/ Settare l'allineamento del testo\r\n[myTextField setTextAlignment:UITextAlignmentCenter];\r\n<\/pre>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_01.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_01.png\" alt=\"UITextField screenshot 01\" title=\"screenshot_01\" width=\"298\" height=\"50\" class=\"aligncenter size-full wp-image-2202\" \/><\/a><br \/>\n<\/center><\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_02.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_02.png\" alt=\"UITextField screenshot 02\" title=\"screenshot_02\" width=\"304\" height=\"52\" class=\"aligncenter size-full wp-image-2203\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_02.png 304w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_02-300x51.png 300w\" sizes=\"auto, (max-width: 304px) 100vw, 304px\" \/><\/a><br \/>\n<\/center><\/p>\n<h4>Regolare la dimensione del testo in un UITextField<\/h4>\n<p>Il testo mostrato nel nostro UITextField pu\u00f2 essere dinamicamente ridimensionato in base alla larghezza dell&#8217; UITextField. I vantaggi di ci\u00f2 sta nel fatto che tutto il testo digitato risulter\u00e0 visibile. Le dimensioni del testo si ridurranno fino al raggiungimento della dimensione di default del font (17). Quindi, perch\u00e8 tutto questo funzioni, \u00e8 necessario impostare le dimensioni dei caratteri del nostro UITextField ad un valore pi\u00f9 grande di 17.<\/p>\n<table>\n<tr>\n<td>adjustsFontSizeToFitWidth<\/td>\n<td>Valore booleano che indica se adattare o meno la dimensione del carattere alla larghezza dell&#8217; UITextField.<\/td>\n<\/tr>\n<\/table>\n<p>Ecco un esempio dell&#8217;uso di questa propriet\u00e0:<\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\n[myTextField setFont:[UIFont fontWithName:@\"Times New Roman\" size:30]];\r\n[myTextField setAdjustsFontSizeToFitWidth:YES];\r\n<\/pre>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_03.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_03.png\" alt=\"UITextField screenshot 03\" title=\"screenshot_03\" width=\"298\" height=\"55\" class=\"aligncenter size-full wp-image-2204\" \/><\/a><br \/>\n<\/center><\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_04.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_04.png\" alt=\"UITextField screenshot 04\" title=\"screenshot_04\" width=\"297\" height=\"48\" class=\"aligncenter size-full wp-image-2205\" \/><\/a><br \/>\n<\/center><\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_05.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_05.png\" alt=\"UITextField screenshot 05\" title=\"screenshot_05\" width=\"296\" height=\"52\" class=\"aligncenter size-full wp-image-2206\" \/><\/a><br \/>\n<\/center><\/p>\n<h4>Gestire i comportamenti delle funzioni di editing<\/h4>\n<p>Queste due propriet\u00e0 sono molto semplici e intuitive:<\/p>\n<table>\n<tr>\n<td>editing<\/td>\n<td>Valore booleano di sola lettura che permette di sapere se l&#8217;utente sta effettuando modifiche nell&#8217;UITextField<\/td>\n<\/tr>\n<tr>\n<td>clearsOnBeginEditing<\/td>\n<td>Cancella il testo contenuto nel campo ogni qualvolta l&#8217;utente inizia a scrivere qualcosa al suo interno<\/td>\n<\/tr>\n<\/table>\n<h4>Impostazioni dell&#8217;aspetto grafico<\/h4>\n<p>Questo gruppo di propriet\u00e0 definisce come l&#8217;UITextField apparir\u00e0 nel nostro programma. Se avete mai visto una finestra di input graficamente personalizzata, sono queste le propriet\u00e0 su cui dovrete lavorare per ottenere anche voi risultati simili.<\/p>\n<table>\n<tr>\n<td>borderStyle<\/td>\n<td>Definisce il tipo di bordo per l&#8217;UITextField. Tra le possibili scelte abbiamo UITextBorderStyleNone, UITextBorderStyleLine, UITextBorderStyleBezel e UITextBorderStyleRoundedRect. Il valore di default \u00e8 UITextBorderStyleNone.<\/td>\n<\/tr>\n<tr>\n<td>background<\/td>\n<td>Un&#8217; UIImage che rappresenta l&#8217;immagine di sfondo del nostro UITextField (quando \u00e8 attivata). Se questa propriet\u00e0 viene alterata la propriet\u00e0 BorderStyle verr\u00e0 ignorata.<\/td>\n<\/tr>\n<tr>\n<td>backgroundDisabled<\/td>\n<td>Un&#8217; UIImage che rappresenta l&#8217;immagine di sfondo del nostro UITextField (quando \u00e8 disattivata).<\/td>\n<\/tr>\n<\/table>\n<p>Ecco alcuni esempi dell&#8217;uso di queste propriet\u00e0:<\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\n\/\/ Border Style None\r\n[myTextField setBorderStyle:UITextBorderStyleNone];\r\n<\/pre>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_06.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_06.png\" alt=\"UITextField - screenshot 06\" title=\"screenshot_06\" width=\"290\" height=\"43\" class=\"aligncenter size-full wp-image-2209\" \/><\/a><br \/>\n<\/center><\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\n\/\/ Border Style Line\r\n[myTextField setBorderStyle:UITextBorderStyleLine];\r\n<\/pre>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_07.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_07.png\" alt=\"UITextField - screenshot 07\" title=\"screenshot_07\" width=\"288\" height=\"41\" class=\"aligncenter size-full wp-image-2210\" \/><\/a><br \/>\n<\/center><\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\n\/\/ Border Style Bezel\r\n[myTextField setBorderStyle:UITextBorderStyleBezel];\r\n<\/pre>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_08.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_08.png\" alt=\"UITextField - screenshot 08\" title=\"screenshot_08\" width=\"291\" height=\"42\" class=\"aligncenter size-full wp-image-2211\" \/><\/a><br \/>\n<\/center><\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\n\/\/ Border Style Rounded Rect\r\n[myTextField setBorderStyle:UITextBorderStyleRoundedRect];\r\n<\/pre>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_09.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_09.png\" alt=\"UITextField - screenshot 09\" title=\"screenshot_09\" width=\"288\" height=\"41\" class=\"aligncenter size-full wp-image-2212\" \/><\/a><br \/>\n<\/center><\/p>\n<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_10.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_10.png\" alt=\"UITextField - screenshot 10\" title=\"screenshot_10\" width=\"185\" height=\"28\" class=\"alignleft size-full wp-image-2213\" \/><\/a> Lo stile del bordo forse non \u00e8 il massimo graficamente. Tuttavia, potrete personalizzare come meglio credete il vostro UITextFields utilizzando la propriet\u00e0 background. Ecco un esempio di impostazione della propriet\u00e0 di sfondo utilizzando l&#8217;immagine qui a sinistra.<\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\nmyTextField.textAlignment = UITextAlignmentCenter;\r\nmyTextField.textColor = [UIColor whiteColor];\r\nmyTextField.borderStyle = UITextBorderStyleNone;\r\nmyTextField.background = [UIImage imageNamed:@\"bg.png\"];\r\n<\/pre>\n<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_11.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_11.png\" alt=\"UITextField - screenshot 11\" title=\"screenshot_11\" width=\"288\" height=\"46\" class=\"alignleft size-full wp-image-2215\" \/><\/a> Ed ecco il risultato ottenuto (qui a sinistra). Non vi sembra graficamente migliore? Unica accortezza, affinch\u00e8 la propriet\u00e0 background lavori correttamente, \u00e8 che dovrete settare boderStyle con un qualsiasi valore differente a UITextBorderStyleRoundedRect. In caso contrario, verr\u00e0 mostrato l&#8217;UITextField di default.<\/p>\n<h4>Gestire la sovrapposizione di viste<\/h4>\n<p>Un altro modo interessante per personalizzare il vostro UITextField \u00e8 quello di usare un &#8220;overlay&#8221;, ovvero una View sovrapposta (a sinistra o a destra). Ecco le propriet\u00e0:<\/p>\n<table>\n<tr>\n<td>clearButtonMode<\/td>\n<td>La X cerchiata che viene mostrata durante la digitazione di un testo. Viene usata per cancellare, se premuta, il testo inserito. Possibili valori: UITextFieldViewModeNever, UITextFieldViewModeWhileEditing, UITextFieldViewModeUnlessEditing, UITextFieldViewModeAlways<\/td>\n<\/tr>\n<tr>\n<td>leftView<\/td>\n<td>La vista che appare a sinistra all&#8217;interno di un UITextField. Ad esempio potrebbe essere qualcosa di simile alla lente d&#8217;ingrandimento per la ricerca.<\/td>\n<\/tr>\n<tr>\n<td>leftViewMode<\/td>\n<td>Lavora come clearButtonMode, ma con la leftView.<\/td>\n<\/tr>\n<tr>\n<td>rightView<\/td>\n<td>Come la leftView, con la sola differenza che \u00e8 allineata a destra.<\/td>\n<\/tr>\n<tr>\n<td>rightViewMode<\/td>\n<td>Come leftViewMode ma controlla la rightView<\/td>\n<\/tr>\n<\/table>\n<p>Ecco un&#8217;esempio che mostra come lavora leftView:<\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\nUIImageView * myView = [[ UIImageView  alloc ]  initWithImage :[UIImage  imageNamed : @\"wordpress.png\" ]];\r\n[myTextField  setLeftView :myView];\r\n[ myTextField   setLeftViewMode: UITextFieldViewModeAlways];\r\n[myView release ];\r\n<\/pre>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_12.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/screenshot_12.png\" alt=\"UITextField - screenshot 12\" title=\"screenshot_12\" width=\"291\" height=\"44\" class=\"aligncenter size-full wp-image-2216\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Come potete vedere, il testo \u00e8 allineato dopo l&#8217;immagine. Questo \u00e8 un modo molto semplice per rendere pi\u00f9 accattivanti i vostri UITextField.<\/p>\n<p>L&#8217;ultima funzionalit\u00e0 che vi illustriamo mostra come visualizzare o nascondere la tastiera.<\/p>\n<h4>Visualizzare o nascondere la tastiera<\/h4>\n<p>Per visualizzare la tastiera:<\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\n[myTextField becomeFirstResponder];\r\n<\/pre>\n<p>Per nasconderla:<\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\n[myTextField resignFirstResponder];\r\n<\/pre>\n<p>La guida termina qui, vedremo pian piano come funzionano tutti gli altri oggetti del framework UIKit.<br \/>\nUn ringraziamento a <a href=\"http:\/\/icodeblog.com\/\" target=\"_blank\">iCodeBlog<\/a> per averci permesso di tradurre per i nostri utenti questa utilissima guida.<br \/>\nAlla prossima \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un ringraziamento a brandontreb di iCodeBlog per questa utile e completa guida sull&#8217;UITextField. L&#8217;UITextField \u00e8 probabilmente uno&#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":[42],"tags":[42,124,43,123,23],"class_list":["post-2201","post","type-post","status-publish","format-standard","hentry","category-framework","tag-framework","tag-icodeblog","tag-uikit","tag-uitextfield","tag-xcode"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/2201","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=2201"}],"version-history":[{"count":6,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/2201\/revisions"}],"predecessor-version":[{"id":2219,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/2201\/revisions\/2219"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=2201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=2201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=2201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}