【发布时间】:2014-12-06 06:43:21
【问题描述】:
我实现了这段代码,但退格键不起作用,直到我按下 UITextfield 中的删除按钮 我想用退格键删除。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:_demo_str];
for (int i = 0; i < [string length]; i++) {
unichar c = [string characterAtIndex:i];
if ([myCharSet characterIsMember:c]) {
return YES;
}
}
return NO;
}
【问题讨论】:
-
当退格键被点击时,
string将是空字符串,所以你返回NO这意味着更改将被忽略,所以什么也不会发生。 -
@rmaddy 那我该怎么做呢?
-
如果
string为空,则返回YES,以便处理删除。 -
@rmaddy 不,我不能这样做,因为我指定了一些条件,在该条件下用户只能输入从开始范围到结束范围的特定值
标签: ios objective-c ios8 uitextfield uitextfielddelegate