2014-01-17 3 views
0

Я использую этот метод для замены и проверки в реальном времени, затраченного в UITextField, но это не работает на КСН 7 - 64 битаshouldChangeCharactersInRange не работает в ios7-64bit

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    if (textField == textInput) { 

     NSString * text = [textField.text stringByReplacingCharactersInRange:range withString:string]; 
     text = [text stringByReplacingOccurrencesOfString:@"*" withString:@"?"]; 
     [textField setText:text]; 
     return NO; 
    } 
return YES; 
} 

Это TextField я проверить и только номер входа, но в ios7-64bit он вводит только 4 числа.

У вас есть решение для этого?

+0

Как вы объявляете это ** TextInput ** –

ответ

0

shouldChangeCharactersInRange Это должно работать как IOS7. Нет изменений для делегатов UITextField.

Проверьте их: Убедитесь, что у delegate set to the UITextField.

self.textInput.delegate = self; 

А Вы уверены, что о состоянии if (textField == textInput)

Этот код работает отлично для меня. :

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ 
    NSString * text = [textField.text stringByReplacingCharactersInRange:range withString:string]; 
    text = [text stringByReplacingOccurrencesOfString:@"*" withString:@"?"]; 
    [textField setText:text]; 
    return NO; 
} 
+0

Но в ios7-64bit (устройство: iphone5s). эта работа работает неправильно. когда я вводим число max 4, но я хочу ввести больше – NguyenStorm

Смежные вопросы