我有一个UITextField
,其文字如+91-
(印度的国家来电代码)。现在,当我的用户将他的号码输入到该文本字段中时,它看起来像这样,+91-1234567890
很好,现在当他点击(x)从键盘删除键时,我想限制删除,它唯一可能最多,1
(他的手机号码的第一位数字),无论如何,他都不能删除+91-
。我可以使用- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
委托,像这样,
1)第一种方式:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if([string isEqualToString:@""]) { //detect back space
if([textField.text hasSuffix:@"-"]) { //has suffix `-`
return NO;
}
}
}
2)第二种方式:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
//if text length is length of caller code and detect back space
if(textField.text.length<=4 && [string isEqualToString:@""]) {
return NO;
}
return YES;
}
在这两种方式中,我得到了我想要的东西,但不确定它的正确与否?还有更顺畅的方式吗?
答案 0 :(得分:1)
为什么你不像简单的方法那样尝试在UIView
UItextfield
答案 1 :(得分:1)
您只需在用户实际输入号码的UILabel
之前显示不可编辑的UITextField
即可。当您从用户那里获得输入并想要处理它时,前缀为&#34; +91 - &#34;在用户输入字符串之前