Ios SelectedExtrange始终返回零

Ios SelectedExtrange始终返回零,ios,objective-c,uitextfield,Ios,Objective C,Uitextfield,我有一个子类UITextField,比如: @interface CustomTextField : UITextField -(NSRange) getSelection; @end @implementation CustomTextField -(NSRange) getSelection { UITextRange *selectedRange = [self selectedTextRange]; UITextPosition* selectionStart

我有一个子类
UITextField
,比如:

@interface CustomTextField : UITextField

-(NSRange) getSelection;

@end

@implementation CustomTextField

-(NSRange) getSelection
{

    UITextRange *selectedRange = [self selectedTextRange];
    UITextPosition* selectionStart = selectedRange.start;
    UITextPosition* selectionEnd = selectedRange.end;

    const NSInteger position1 = [self offsetFromPosition:self.beginningOfDocument toPosition:selectionStart];
    const NSInteger position2 = [self offsetFromPosition:self.beginningOfDocument toPosition:selectionEnd];
    return NSMakeRange(position1, position2);
}

@end

但在这里,每当我将光标放在文本字段中,并调用
getSelection
方法
selectedRange
时,它总是为零,所以
selectedtextange
不更新为什么?当我添加@synthesis selectedtemtrange时,属性被更新。继承有什么问题吗?

如评论中所述,确保您的文本字段是第一响应者。如果没有,请在字段上调用becomeFirstResponder()。我在iOS 10上有这个bug。从iOS 11开始,即使您的文本字段不是第一个响应者,也可以正常工作。

在您调用
getSelection
时,您的文本字段是第一个响应者吗?