Wie funktioniert shouldChangeCharactersInRange in Swift?

Ich benutze shouldChangeCharactersInRange als Möglichkeit, die Direktsuche zu verwenden.

Wie auch immer ich ein Problem habe, shouldChangeCharactersInRange wird aufgerufen, bevor das Textfeld tatsächlich aktualisiert wird:

n Ziel C habe ich dies mit folgendem Befehl gelöst:

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString * searchStr = [textField.text stringByReplacingCharactersInRange:range withString:string];

    return YES;
}

Allerdings habe ich versucht, dies in Swift zu schreiben:

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

    self.callMyMethod(txtAfterUpdate)
    return true
}

Die Methode wird immer noch aufgerufen, bevor ich einen Wert erhalte?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage