我有一个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然后更新属性。那么继承有什么问题吗?
答案 0 :(得分:0)
如评论中所述,确保您的TextField是第一响应者。如果不是,请在字段上致电becomeFirstResponder()
。我在iOS 10上遇到了这个错误。从iOS 11开始,即使您的textField不是第一响应者,它也可以正常工作。