同行,你好,我估计也遇到类似的问题了,经排查:
是一个UITextField的分类导致的,代码如下:必现:
#import "UITextField+Select.h"
@implementation UITextField (Select)
(NSRange)selectedRange
{
UITextPosition *beginning = self.beginningOfDocument;
UITextRange *selectedRange = self.selectedTextRange;
UITextPosition *selectionStart = selectedRange.start;
UITextPosition *selectionEnd = selectedRange.end;
NSInteger location = [self offsetFromPosition:beginning toPosition:selectionStart];
NSInteger length = [self offsetFromPosition:selectionStart toPosition:selectionEnd];
return NSMakeRange(location, length);
}
(void)selectedText
{
UITextRange *range = [self textRangeFromPosition:self.beginningOfDocument toPosition:self.endOfDocument];
[self setSelectedTextRange:range];
}
(void)setSelectedRange:(NSRange)range
{
UITextPosition *beginning = self.beginningOfDocument;
UITextPosition *startPosition = [self positionFromPosition:beginning offset:range.location];
UITextPosition *endPosition = [self positionFromPosition:beginning offset:NSMaxRange(range)];
UITextRange *selectionRange = [self textRangeFromPosition:startPosition toPosition:endPosition];
[self setSelectedTextRange:selectionRange];
}
@end
iOS16以后的机型(真机或者模拟器)都会,我也搞不懂啥情况,debug模式就是定位不到,[捂脸]才一个个第三方文件排查,新建的demo,uitextfield的输入框,没问题,加了那个文件,即使没用,加入项目也会导致,关闭项目,运行iOS16的设备,双击输入框,基本就会crash。