2009-10-06 16 views
4

J'ai le type de correction automatique désactivé pour mon champ de texte, et il ne montre aucune autre correction automatique,iPhone SDK: (.) ​​Création automatique de désactivation des points dans le champ de texte (ou textview)

mais il crée automatiquement un point (.) lorsque j'appuie deux fois sur la touche espace.

Par exemple, si je écris « test » et appuyez sur l'espace deux fois la touche, il change automatiquement en « test ».

Tout le monde sait comment désactiver cette fonctionnalité?

Merci beaucoup.

+0

Votre question a été répondu? – JoePasq

+0

Pas exactement pour désactiver la fonction, mais j'ai trouvé une sorte de solution de contournement que j'ai posté ci-dessous. – elios786

Répondre

2

J'ai trouvé une solution - elle utilise UITextFieldTextDidChangeNotification parce que cela se produit après l'auto-correction.

  1. Définir le délégué pour le champ texte
  2. Configurer une notification

    - (void) viewDidLoad {
    ...
    [[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(textFieldDidChange:)
    name:UITextFieldTextDidChangeNotification object:tfTitle];
    }

  3. Ensuite, gestionnaire de notification
    - (void)textFieldDidChange:(NSNotification *)aNotification
    {
    if ([textField.text rangeOfString:@". "].length) {
    // Change text
    textField.text = [textField.text stringByReplacingOccurrencesOfString:@". " withString:@" "];
    }
    }

+0

Mais disons que j'ai entré un "." et non "". Cela ne créerait-il pas un problème ici? – shashank

1

Peut-être que si vous accrochez un délégué de champ texte, puis mettre en œuvre la méthode suivante:

-(BOOL)shouldReplaceCharactersInRange:(NSRange)aRage withString:(NSString *)aString 

Vous pouvez être en mesure de vérifier aString pour la chaîne autocorrected (« » peut-être @) puis juste retour NO . J'espère que cela ne permettra pas de remplacer le @ "" par @ "."

+0

Salut Bisbo, J'ai essayé votre suggestion, et a constaté que l'auto-correction (double tap de l'espace dans la période) se produit après que cette méthode est appelée, et le changement n'appelle pas cette méthode pour vérifier. Merci quand même, et s'il vous plaît faites le moi savoir si vous avez une autre idée. – elios786

+0

Ahh, oh bien, était juste une pensée :-) –

+1

Cela fonctionne si vous vérifiez pour les espaces doubles, voir celui-là: http://stackoverflow.com/questions/2576561/iphone-disable-the-double-tap-spacebar -pour-raccourci/3023716 # 3023716 –