对于工具间距我使用
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
但在这种情况下,我需要控制很多不同的东西来保持正确的格式。例如,如果用户将光标放在1和2之间并添加新数字。或删除数字1。
如何在某些符号之间设置更大的间距?
例如,通过某种方式自定义UITextField
。
UPD:我实现了NSMutableAttributedString
,但是当我这样使用它时,每当我将符号放在文本的中心时,光标就会在字符串的末尾移动。所以可能是放置此代码的正确位置。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSString *futureString = [textField.text stringByReplacingCharactersInRange:range withString:string];
if(textField == phoneNumberTextField){
if(futureString.length>=2){
NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:futureString];
[attributedStr addAttribute:NSKernAttributeName value:@(5)
range:NSMakeRange(1, 1)];
phoneNumberTextField.attributedText = attributedStr;
return NO;
}else
if(futureString.length > 10){
return NO;
}
}
return YES;
}