2016-06-23 17 views
1

Ich habe ein Problem in meiner App, dass, wenn ich die Leertaste zweimal drücke, wird "." (Punkt) in der TextField hinzugefügt. Ich möchte keinen Punkt zulassen. " auf Doppelklick auf die Leertaste.Punkt nicht zulassen "." auf Doppelklick auf die Leertaste für UITextField

Hinweis: Ich weiß, dass es Standardverhalten von TextField in iOS ist.

Ich habe die frühere Antwort iPhone: Disable the "double-tap spacebar for ." shortcut? verwiesen, aber es ist für textView, nicht für textField.

ich nicht Ersatz zu dieser Linie immer

textView.selectedRange = NSMakeRange(range.location + 1, 0) 
+2

Mögliche Duplikat [iPhone: Deaktivieren Sie die "Doppel-Tap spacebar für." Abkürzung?] (http://stackoverflow.com/questions/2576561/iphone-disable-the-double-tap-spacebar-for-shortcut) –

+0

@ Vishnugondlekar, wenn Sie mich für Textfield-Version zur Verfügung stellen können, wird es hilfreich sein. –

Antwort

0

ich das gleiche Problem haben, dann den unten delegieren Methode verwenden, seine gelöst wurde, verwenden Sie diesen Code der Punkt nicht in Textfeld angezeigt,

swift Code:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 
     let newString = (textField.text! as NSString).stringByReplacingCharactersInRange(range, withString: string) as? NSString 

     let arrayOfString = newString?.componentsSeparatedByString("."); 
     if arrayOfString?.count > 1 
     { 
      return false 
     } 

     return true 
    } 

Ziel C-Code:

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    NSString *newString1 = [textField.text stringByReplacingCharactersInRange:range withString:string]; 
    NSArray *arrayOfString1 = [newString1 componentsSeparatedByString:@"."]; 

    if ([arrayOfString1 count] > 1) 
     return NO; 

    return YES; 
} 

für mich seine Arbeits, hoffen seine hilfreich

+2

bitte beantworten Sie die schnelle Frage nur mit schnellen Antworten. – Shubhank

+0

ok ich werde post sein, das habe ich vergessen. –

+0

Das funktioniert nicht, wenn sich bereits Text im Textfeld befindet. –

0
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 
    if (string == ". ") { 
    return false 
    } 
    else { 
    return true 
    } 
} 
+0

SWIFT !!!! BITTE .. lol –

+0

meine Frage ist über Doppel tippen Leertaste –

+0

können Sie überprüfen, und es ist Arbeit –