Ben*_*all 20 iphone objective-c
问题...我有一串允许的字符"0123456789".如何从键盘中允许退格...当我从下面实现代码时...退格键不再有效......我该如何解决这个问题?
- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSCharacterSet *nonNumberSet = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789."] invertedSet];
return ([string stringByTrimmingCharactersInSet:nonNumberSet].length > 0);
}
Run Code Online (Sandbox Code Playgroud)
Ben*_*all 22
- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *nonNumberSet = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789."] invertedSet];
if (range.length == 1){
return YES;
}else{
return ([string stringByTrimmingCharactersInSet:nonNumberSet].length > 0);
}
}
Run Code Online (Sandbox Code Playgroud)
jls*_*ker 15
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if ([string length] == 0)
return YES;
NSCharacterSet *nonNumberSet = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
string = [[string componentsSeparatedByCharactersInSet:nonNumberSet] componentsJoinedByString:@""];
textField.text = [textField.text stringByReplacingCharactersInRange:range withString:string];
return NO;
}
Run Code Online (Sandbox Code Playgroud)
这应该可以正确地一次删除/剪切多个字符,以及粘贴.更正欢迎.唯一已知的问题是当你在文本字段的中间进行编辑时,光标会被发送到最后(因为它返回NO) - 我想你必须用a UITextView来修复它.
| 归档时间: |
|
| 查看次数: |
11031 次 |
| 最近记录: |