Vraag De volledig gewijzigde tekenreeks in textField kennen: shouldChangeCharactersInRange: replacementString:


Ik vroeg het net een vraag over hoe wijzigingen in een te controleren UITextField en ontving dit antwoord:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)replacementStr {
    // Enable "Next" if you like what's entered in the replacementStr
}

Dit werkt, maar de vervangende tekenreeks is niet de hele tekenreeks, maar wat deze toevoegt. Hoe kan ik de hele string krijgen? Mijn doel is om te zien of de reeks in het tekstveld leeg is of gelijk aan een bepaald aantal (in verschillende scenario's).

Houd er rekening mee dat de uitkomst van het tekstveld in dit geval niet werkt, omdat deze methode wordt aangeroepen voordat de tekst in het veld verandert.


29
2017-07-23 00:59


oorsprong


antwoorden:


NSString * proposedNewString = [[textField text] stringByReplacingCharactersInRange:range withString:replacementString];

71
2017-07-23 01:02



Snelle versie

In Snel We moeten casten textField's tekst naar NSString. Het volgende kan handig zijn:

let newString = (textField.text! as NSString).replacingCharacters(in: range, with: string)

12
2018-02-25 02:10



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

//    [textField2 setText:[textField1.text stringByReplacingCharactersInRange:range withString:string]];
    NSLog(@"%@",searchStr);
    return YES;
}

0
2018-04-01 13:00