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

top 命令第一次迭代总是返回相同的结果

java io

尽管数据有效,但 Redshift 上的 COPY 总是失败并出现时间戳错误

ni是啥软件

汉语-词语:年轻