代码之家  ›  专栏  ›  技术社区  ›  CMPXCHG8B

UITableViewController上的第一响应者?

  •  0
  • CMPXCHG8B  · 技术社区  · 7 年前

    我收到了一些旧代码要更新(来自iOS 5时代),其中有一大块代码我不太理解:

    - (void)viewDidAppear:(BOOL)animated
    {
        [self becomeFirstResponder];
    }
    
    - (BOOL)canBecomeFirstResponder
    {
        return YES;
    }
    

    这是UITableViewController子类的一部分,该子类实例化了一系列自定义UITableViewCell子类,这些子类都包含uitextfield(UITableViewCell子类验证并处理其输入,然后通过委托方法传递回UITableViewController)。

    好吧,UIResponder的东西,比如becomeFirstResponder和canBecomeFirstResponder,更多的是与用户交互控制小部件(比如文本字段和东西)有关,而不是与表视图控制器有关。

    有人能告诉我这段代码在UITableViewController上是否有任何用途吗?还是我可以删除?应用程序的行为似乎没有改变,无论它是否存在。

    1 回复  |  直到 7 年前
        1
  •  0
  •   ekscrypto    7 年前

    这就是说,如果开发人员试图做一些非常奇怪(不干净)的事情,比如强制将UITableViewController设置为firstResponder,然后让另一段代码将请求转发给第一响应者,希望它是UITableViewController,或者将NIB中的一些方法附加到firstResponder对象。