Kann mir jemand helfen, mit diesem Code unter Verwendung von Textfeldern sollte Zeichen in Bereich nur ändern zuerst wird ausgeführt?textfields sollte Zeichen im Bereich nur zuerst ändern wird ausgeführt
#define ACCEPTABLE_CHARACTERS1 @" 1234567890"
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
{
// first one................//
if (textField == self.phoneField)
{
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:ACCEPTABLE_CHARACTERS1] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
return [string isEqualToString:filtered];
}
// second one ........
if (textField == self.phoneField) {
if (((range.location == 3)) ||(range.location == 7)) {
_phoneField.text = [NSString stringWithFormat:@"%@-%@", textField.text, string];
return NO;
}
else if (range.length == 1 &&
(range.location == 4 || range.location == 8)) {
range.location--;
range.length = 2;
textField.text = [textField.text stringByReplacingCharactersInRange:range withString:@""];
return NO;
}
if (range.length+range.location > textField.text.length) {
return NO;
}
NSUInteger newLength = [textField.text length] + [string length] - range.length;
return newLength <=10;
}
}
Können Sie erklären, was Sie hier brauchen? –
Ich werde nicht beide Ausdrücke ausführen Sir – vamsi
Zuerst, wenn Schließung wird jedes Mal Rückgabewert entweder NEIN oder JA. So wird Ihre Kontrolle nicht auf den zweiten gehen, wenn sie geschlossen wird! – Lion