selectedTextRange总是返回nil

时间:2015-06-15 21:43:37

标签: ios objective-c uitextfield

我有一个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总是为零,那么selectedTextRange不更新为什么?当我添加@synthesize selectedTextRange然后更新属性。那么继承有什么问题吗?

1 个答案:

答案 0 :(得分:0)

如评论中所述,确保您的TextField是第一响应者。如果不是,请在字段上致电becomeFirstResponder()。我在iOS 10上遇到了这个错误。从iOS 11开始,即使您的textField不是第一响应者,它也可以正常工作。