2012-01-26 4 views
10

Ho sentito che il correttore ortografico di Apple per UITextView mantiene una sorta di registrazione di ciò che si digita nelle singole applicazioni. Ho un'applicazione sicura in cui il controllo ortografico è una funzionalità utile, tuttavia non voglio che le nuove parole vengano registrate da qualche parte al di fuori della mia applicazione. Qualcuno può farmi riferimento a un documento di riferimento Apple o a una descrizione tecnica di quali informazioni vengono acquisite dal controllo ortografico e dove vengono acquisite anche?Quali informazioni sono archiviate da Spell Checker di iOS?

+3

cool question :) – Danra

risposta

2

non so definitivamente, ma utilizzando fseventer, l'apprendimento della parola "aple" in TextEdit salva quella parola a ~/Library/Spelling/LocalDictionary. Ignorare una parola sembra non modificare affatto il filesystem, e in effetti, se il documento è chiuso e non salvato, e un nuovo documento con quella parola precedentemente ignorata viene aperto, non viene più ignorato. Ciò è coerente con +learnWord: come metodo di classe e -ignoreWord: come metodo di istanza. Quindi, per sicurezza, probabilmente non si può chiamare semplicemente +learnWord: e invece il proprio backend memorizza in modo persistente/sicuro un elenco di parole ignorate.

+0

Interessante ... fa ipotesiForWordRange: inString: lingua: o completionsForPartialWordRange: inString: lingua: hanno attività FS? In caso contrario, dovrebbe essere possibile scrivere la mia sottoclasse UITextView che esegue il controllo ortografico senza apprendimento. (il mio obiettivo attuale) – BadPirate

3

Non sono sicuro se questo aiuta molto, ma si poteva fare il controllo ortografico manualmente con la classe UITextChecker, che consente di impostare un elenco di parole ignorati:

- (void)setIgnoredWords:(NSArray *)words 

Maggiori informazioni qui: https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITextChecker_Class/Reference/Reference.html

È inoltre possibile controllare se la parola è stato appreso con:

+ (BOOL)hasLearnedWord:(NSString *)word 
+0

Bit correlati qui, ma sarebbe possibile accettare automaticamente tutte le parole errate utilizzando UITextChecker? –

+0

Sì, basta chiamare + learnWord (NSString *) per ogni nuova parola. – danielbeard

+0

Vedo ma dico una parola in un UITextField è errato ad esempio invece di "apple" ha detto "aple". Se chiamo learnWord (NSSString *) lo cambierà automaticamente in "mela"? –