selectedTextRange 总是返回 nil
Posted
技术标签:
【中文标题】selectedTextRange 总是返回 nil【英文标题】:selectedTextRange always returning nil 【发布时间】:2015-06-15 21:43:37 【问题描述】:我有一个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 时,属性会更新。那么继承有什么问题吗?
【问题讨论】:
在您致电getSelection
时,您的文本字段是第一响应者吗?
【参考方案1】:
如 cmets 中所述,请确保您的 TextField 是第一响应者。如果没有,请在现场致电becomeFirstResponder()
。我在 ios 10 上遇到了这个错误。从 iOS 11 开始,即使您的 textField 不是第一响应者,它也可以正常工作。
【讨论】:
以上是关于selectedTextRange 总是返回 nil的主要内容,如果未能解决你的问题,请参考以下文章
headerViewForSection 和 footerViewForSection 总是返回 nil