ios - UITextField 与 iOS13 中的键提供程序不兼容键值编码
问题描述
iOS 11.2以上UITextField内存泄漏问题的常见解决方法如下:
- (void) didMoveToWindow {
[super didMoveToWindow];
if (@available(iOS 11.2, *) {
NSString *keyPath = @"textContentView.provider";
@try {
if (self.window){
id provider = [self valueForKeyPath:keyPath];
if (!provider && self) {
[self setValue:self forKeyPath:keyPath];
} else {
[self setValue:nil forKeyPath:keyPath];
}
}
} @catch (NSException *e) {
NSLog("%@",e);
}
}
但是,在 iOS 13 中,这样的解决方案会导致白屏问题,并且控制台中的错误日志是
[<_UITextFieldCanvasView 0x7f8338476700> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key provider.
有什么解决办法吗?谢谢。
解决方案
推荐阅读
- hyperledger-fabric - 使用端点设备连接到 Hyperledger Fabric CA-Server
- php - 即使我定义了“id”,雄辩的 whereHas 也在寻找“user_id”而不是“id”
- excel - Excel VBA 搜索多种文件格式(PDF、DOC、DOCX、XLS)
- vb.net - 想要 40 GB 内存映射文件但限制为 4 GB?VB.net
- c++ - C++ 错误:没有用于调用“”的匹配函数
- c++ - 使用 Visual Studio 2017 在 Linux 上构建现有 C++ 解决方案
- php - “ReflectionClass:Pagescontroller 不存在”错误
- xml - XSLT 枚举映射
- model-view-controller - 无法将类型“System.Nullable”转换为类型“System.Object”。LINQ to Entities 仅支持转换 EDM 基元或枚举类型
- jquery - 如何通过单击关闭按钮停止/暂停视频