2014-01-17 34 views
0

我用这个方法来代替,并在检查的UITextField实时输入无法正常工作,但是这在iOS 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; 
} 

这个文本字段我检查,只输入数字,但在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)。这项工作不正确。当我输入数字最大是4,但我想输入更多 – NguyenStorm

相关问题