Sono d'accordo con Fogmeister per i campi di testo creati nel codice. Ma se stai stendendo dei campi di testo in Storyboard, quell'approccio non funzionerà (perché ogni campo definisce esplicitamente le sue proprietà). Ma c'è un modo semplice che funziona.
Fare clic con il tasto destro sullo storyboard e sul codice sorgente "Apri come ...". Ciò pone una rappresentazione XML dell'SB su una finestra dell'editor. È possibile modificare le proprietà del campo di testo globalmente (e/o in modo selettivo) utilizzando l'editor (o copiandole nell'editor XML di propria scelta).
Fair warning, è possibile uccidere il progetto se si introducono errori nell'SB che lo manterranno dalla compilazione, quindi sii molto attento e assicurati di avere un backup per l'SB. Ma se controlli dopo ogni cambio, questa tecnica può funzionare molto bene.
Cerca "<textField
" per trovare qualcosa di simile:
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="name" minimumFontSize="17" clearButtonMode="whileEditing" id="F9N-Tb-KTd">
<rect key="frame" x="176" y="301" width="472" height="31"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits" autocapitalizationType="words" enablesReturnKeyAutomatically="YES"/>
<connections>
<action selector="changeName:" destination="4" eventType="editingDidEnd" id="bLg-iM-m8a"/>
</connections>
</textField>
Trova un campo di testo che ha le proprietà FontDescription che ti piace, e uno che non lo fa. Quindi sostituire le proprietà fontDescription che si desidera modificare con le proprietà corrispondenti da quella buona. Assicurati di limitare le modifiche a cose come font, dimensioni e sfondo. Non modificare l'id, il rect o qualsiasi altra cosa che deve essere unica nel campo di testo.
Spero che questo funzioni bene per te, è stata una tecnica molto utile per me per assicurarmi che tutti i miei campi di testo abbiano una tipografia coerente.
(Per tornare alla visualizzazione normale, "Apri con nome ..." Interface Builder - Storyboard)
Buona fortuna!
hmm ... lo strato di materiale è forse la personalizzazione più importante qui. Non sono sicuro se questo funzionerà – Rohan
Aggiunta una nuova risposta che non richiede la sottoclasse. La sottoclasse è meglio evitare con controlli come questo se possibile. – Fogmeister
come possiamo modellare le proprietà del livello da AppDelegate? – dev27