2014-11-17 18 views
9

Ho un'applicazione di tipo di dizionario per lingue straniere che consente l'utilizzo di parole traslitterate (in inglese). La grande maggioranza delle voci è in minuscolo, ma ci sono alcune voci che sono maiuscole. A partire da IOS 8, la barra di ricerca non riconosce più UITextAutocapitalizationTypeNone. Ciò provoca una notevole frustrazione per gli utenti finali. C'è qualche strategia pratica per disattivare la capitalizzazione iniziale? Attualmente è disattivato nell'impostazione storyboard per UISearchBarIOS 8 non supporta più UITextAutocapitalizationTypeNone

Questa è un'applicazione esistente, originariamente scritta per iOS 6. L'attuale documentazione Apple afferma che AutocapitalizationType è disponibile da iOS 2 a iOS 7.1. Gli utenti hanno segnalato la modifica dopo essersi spostati su iOS 8.

+0

Quando si dice che non è riconosciuto, che cosa vuoi dire? Un avvertimento del compilatore o il testo inserito è in maiuscolo in maiuscolo? Mostra come imposti la barra di ricerca. – rmaddy

+0

@rmaddy La barra di ricerca è impostata in uno storyboard. Il tasto Bloc Maiusc viene automaticamente attivato per il primo carattere, anche quando si utilizza il tasto Canc per tornare alla prima posizione. – Bill

+0

'autocapitalizationType' non è stato effettivamente deprecato. I documenti sono fuorvianti. Prima di iOS 8.0, 'UISearchBar' aveva la proprietà' autocapitalizationType'. A partire da iOS 8, la proprietà è stata rimossa ma è stato aggiunto il protocollo 'UITextInputAttributes'. Questo protocollo fornisce la proprietà 'autocapitalizationType'. Così efficacemente nulla è cambiato. La proprietà esiste ancora, è solo dichiarata in modo diverso. Se non funziona attraverso lo storyboard, prova ad aggiungere codice per impostare direttamente la proprietà. – rmaddy

risposta

14

autocapitalizationType non è stato effettivamente ritirato. I documenti sono fuorvianti. Prima di iOS 8.0, UISearchBar aveva la proprietà autocapitalizationType. A partire da iOS 8, la proprietà è stata rimossa ma è stato aggiunto il protocollo UITextInputAttributes. Questo protocollo fornisce la proprietà autocapitalizationType. Così efficacemente nulla è cambiato. La proprietà esiste ancora, è solo dichiarata in modo diverso.

Se lo storyboard non fornisce un modo di lavoro per impostare la proprietà autocapitalizationType, impostare nel codice:

self.someSearchbar.autocapitalizationType = UITextAutocapitalizationTypeNone; 
+3

in Swift usa UITextAutocapitalizationType.None – quemeful

+1

impostando questa proprietà nello storyboard non fa nulla, ma scriverlo in codice fa il trucco! Quindi ho votato questa risposta, grazie! –