使用libPhoneNumber-iOS删除时光标位置的奇怪行为

时间:2018-02-02 09:38:21

标签: ios objective-c phone-number formatter libphonenumber

我使用库libPhoneNumber-iOS 来格式化我的应用中的电话号码。

当我从文本字段的末尾删除文本时,一切正常,但如果当我删除“ - ”字符时光标位于文本字段的中间,则光标跳到文本字段的末尾。< / p>

enter image description here

我如何解决这个问题?

感谢。

UPD

代码块:

- (void)inputText:(NSString *)text
{
    NSString *numberWithCode = [self stringWithPhoneCodeFromString:text];
    self.text = PVNumberFormattingEnabled? [self.formatter inputString:numberWithCode] : numberWithCode;
}

- (NSString *)stringWithPhoneCodeFromString:(NSString *)string
{
    if ( [string isEqualToString:_countryModel.phoneCode] || DEVICE_IS_IPAD )
    {
        return string;
    }

    return [NSString stringWithFormat:@"%@%@", _countryModel.phoneCode? : @"", string? : @""];
}

- (void)phoneNumberTextDidChange
{
    NSString *normalizedText = [self deletePhoneCodeFromText:self.text];

    if ( phoneNumberUtil && normalizedText != nil)
    {
        normalizedText = [phoneNumberUtil normalize:normalizedText];
    }

    [self inputText:normalizedText];
}

但有人试图在文字字段中修改 selectedTextRange 时会出现奇怪的行为。当我添加实现 setSelectedTextRange:时,我无法捕获任何调用,但无论如何,光标跳到最后。

0 个答案:

没有答案