Iphone UITableViewCell生成电话号码样式
在iPhone联系人表视图中,有一个称为“phone”的手机,当用户编辑此手机号码时,会变成这样:(251)575-3621。如何制作此单元格类型 谢谢.Iphone UITableViewCell生成电话号码样式,iphone,ios,uitableview,Iphone,Ios,Uitableview,在iPhone联系人表视图中,有一个称为“phone”的手机,当用户编辑此手机号码时,会变成这样:(251)575-3621。如何制作此单元格类型 谢谢.-(BOOL)textField:(UITextField*)textField - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { N
-(BOOL)textField:(UITextField*)textField
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string {
NSUInteger currentLength = textField.text.length;
NSCharacterSet *numbers = [NSCharacterSet decimalDigitCharacterSet];
if (range.length == 1) {
return YES;
}
if ([numbers characterIsMember:[string characterAtIndex:0]]) {
if ( currentLength == 3 )
{
if (range.length != 1)
{
NSString *firstThreeDigits = [textField.text substringWithRange:NSMakeRange(0, 3)];
NSString *updatedText;
if ([string isEqualToString:@"-"])
{
updatedText = [NSString stringWithFormat:@"%@",firstThreeDigits];
}
else
{
updatedText = [NSString stringWithFormat:@"%@-",firstThreeDigits];
}
[textField setText:updatedText];
}
}
else if ( currentLength > 3 && currentLength < 8 )
{
if ( range.length != 1 )
{
NSString *firstThree = [textField.text substringWithRange:NSMakeRange(0, 3)];
NSString *dash = [textField.text substringWithRange:NSMakeRange(3, 1)];
NSUInteger newLenght = range.location - 4;
NSString *nextDigits = [textField.text substringWithRange:NSMakeRange(4, newLenght)];
NSString *updatedText = [NSString stringWithFormat:@"%@%@%@",firstThree,dash,nextDigits];
[textField setText:updatedText];
}
}
else if ( currentLength == 8 )
{
if ( range.length != 1 )
{
NSString *areaCode = [textField.text substringWithRange:NSMakeRange(0, 3)];
NSString *firstThree = [textField.text substringWithRange:NSMakeRange(4, 3)];
NSString *nextDigit = [textField.text substringWithRange:NSMakeRange(7, 1)];
[textField setText:[NSString stringWithFormat:@"(%@) %@-%@",areaCode,firstThree,nextDigit]];
}
}
}
else {
return NO;
}
return YES;
}
应更改字符范围:(NSRange)范围
替换字符串:(NSString*)字符串{
NSU整数currentLength=textField.text.length;
NSCharacterSet*数字=[NSCharacterSet小数位数字符集];
如果(range.length==1){
返回YES;
}
if([numbers characteristember:[字符串字符索引:0]]){
如果(currentLength==3)
{
如果(range.length!=1)
{
NSString*firstThreeDigits=[textField.text substringWithRange:NSMakeRange(0,3)];
NSString*updateText;
if([string IsequalString:@“-”])
{
UpdateText=[NSString stringWithFormat:@“%@”,前三位数字];
}
其他的
{
updatedText=[NSString stringWithFormat:@“%@-”,前三位数字];
}
[textField setText:updateText];
}
}
否则如果(currentLength>3&¤tLength<8)
{
如果(range.length!=1)
{
NSString*firstThree=[textField.text substringWithRange:NSMakeRange(0,3)];
NSString*dash=[textField.text substringWithRange:NSMakeRange(3,1)];
NSU整数newLenght=range.location-4;
NSString*nextDigits=[textField.text substringWithRange:NSMakeRange(4,newLenght)];
NSString*updatedText=[NSString stringWithFormat:@“%@%@@”,前三个,破折号,下一个数字];
[textField setText:updateText];
}
}
else if(currentLength==8)
{
如果(range.length!=1)
{
NSString*areaCode=[textField.text substringWithRange:NSMakeRange(0,3)];
NSString*firstThree=[textField.text substringWithRange:NSMakeRange(4,3)];
NSString*nextDigit=[textField.text substringWithRange:NSMakeRange(7,1)];
[textField setText:[NSString stringWithFormat:@“(@)%@-%@”,区号,前三个,下一个数字]];
}
}
}
否则{
返回否;
}
返回YES;
}
cell.textlab.text=[NSString stringWithFormat:@“(%03d)%03d-%04d”,第1部分、第2部分、第3部分]代码>