사용자가 전화 번호를 입력해야하는 UITextField가 있습니다.UITextField 시작 부분에 상수 국가 코드 추가하기
이것은 지금과 같은 모습입니다 :
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
// Auto-add hyphen before appending 4rd or 7th digit
//
//
if (range.length == 0 && (range.location == 3 || range.location == 7))
{
textField.text = [NSString stringWithFormat:@"%@-%@", textField.text, string];
return NO;
}
// Delete hyphen when deleting its trailing digit
//
//
if (range.length == 1 && (range.location == 4 || range.location == 8))
{
range.location--;
range.length = 2;
textField.text = [textField.text stringByReplacingCharactersInRange:range withString:@""];
return NO;
}
// Prevent crashing undo bug – see note below.
//
//
if (range.length + range.location > textField.text.length)
{
return NO;
}
// Limit text field characters
//
//
NSUInteger newLength = [textField.text length] + [string length] - range.length;
return (newLength > 12) ? NO : YES;
}
는 3 자리 숫자 후, 하이픈을 추가하고 다시보다하고 있습니다. 여기서 달성하고자하는 것은 UITextField
시작 부분에 국가 코드를 상수로 추가하고 사용자가이를 제거하지 못하도록하는 것입니다. 미국 국가 코드를 말할 수 다음 UITextField
텍스트가 시작 +1-
에서 그 모양을 한 다음 전체 수를 작성 후에는 다음과 같이 표시됩니다 +1-600-242-252
내가 어떻게 할 수 있습니까?
미리 감사드립니다.
마지막 그룹화는 연속 4 개의 숫자입니다. 현재 코드에서는 해당 숫자를 잘못 그룹화합니다 (예 :+ 1-675-973-874-2. 또한 그것을 아직 처리하지 않았기 때문에 그것은 12 자리에서 멈추지 않을 것입니다 ... –
그리고 selectedTextRange는 UITextViews에만 해당합니다. –