【问题标题】:selectedTextRange always returning nilselectedTextRange 总是返回 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 时,您的文本字段是第一响应者吗?

标签: ios objective-c uitextfield


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-28
    • 2015-03-05
    • 2014-08-25
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多