首页 > 解决方案 > 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.

有什么解决办法吗?谢谢。

标签: iosobjective-c

解决方案


推荐阅读