ios - selectedTextRange 总是返回 nil

标签 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 总是 nil,所以 selectedTextRange 没有更新,为什么?当我添加 @synthesize selectedTextRange 时,属性会更新。那么继承有什么问题吗?

最佳答案

如评论中所述,确保您的 TextField 是第一响应者。如果不是,请在该字段上调用 ​​becomeFirstResponder()。我在 iOS 10 上有这个错误。从 iOS 11 开始,即使您的 textField 不是第一响应者,它也能正常工作。

关于ios - selectedTextRange 总是返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30855468/

相关文章:

ios - 如何将我的文本字段设为线而不是框?

iphone - UITextField 背景行为从 iOS 4 到 iOS 5 的变化

ios - 点击 UITextField 时如何打开 UIDatePicker

ios - 如何在真实的ios设备上运行带有热重载的react-native应用程序?

ios - 在 requestAlwaysAuthorization 之后立即使用 CLLocationManager

ios - WKWebView:document.body.offsetHeight返回错误的高度,为什么?

ios - 没有这样的表..无法执行查询…xcode sqlite

iphone - Google api 方向 - 绘制路线无效

iphone - NSString 变量在整个程序中可用

ios - 从后台删除我的应用程序时如何捕获事件