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
时,您的文本字段是第一个响应者吗?