美文网首页
声明-firstResponder-属性导致的键盘无法弹起的问题

声明-firstResponder-属性导致的键盘无法弹起的问题

作者: 9362d9acd9ef | 来源:发表于2017-08-30 09:25 被阅读2次

    手动声明了一个名为 firstResponder 的属性,并且给它赋值。
    最终导致了键盘无法弹起。

    解决方案:firstResponder 换个名字,比如 tFirstResponder。

    原因:
    可能是这是一个 iOS 用来构建响应者链的私有属性,覆写并且对它进行赋值导致了响应者链构建出了问题。

    问题代码如下:

    import "ViewController.h"

    @interface ViewController ()
    @property (nonatomic, weak) UIView *firstResponder;
    @end
     
    @implementation ViewController
     
    - (void)viewDidLoad {
        [super viewDidLoad];
        UITextField *mytextfield = [[UITextField alloc] initWithFrame:CGRectMake(0, 20, 200, 100)];
        mytextfield.backgroundColor = [UIColor redColor];
        [self.view addSubview:mytextfield];
        self.firstResponder = mytextfield;
        UITapGestureRecognizer *tapGesture = [UITapGestureRecognizer new];
        [tapGesture addTarget:self action:@selector(viewTap)];
        [self.view addGestureRecognizer:tapGesture];
    }
     
     
    - (void)viewTap {
        [self.firstResponder resignFirstResponder];
        [self.view becomeFirstResponder];
    }
    @end

    相关文章

      网友评论

          本文标题:声明-firstResponder-属性导致的键盘无法弹起的问题

          本文链接:https://www.haomeiwen.com/subject/leezdxtx.html