【问题标题】:First responder on UITableViewController?UITableViewController 上的第一响应者?
【发布时间】:2017-09-11 12:07:16
【问题描述】:

我得到了一些旧代码要更新(从 iOS 5 时代开始),其中有一大段代码我不太明白:

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

- (BOOL)canBecomeFirstResponder
{
    return YES;
}

这是 UITableViewController 子类的一部分,它实例化了一组自定义 UITableViewCell 子类,这些子类都包含 UITextFields(其输入由 UITableViewCell 子类验证和处理,然后通过委托方法传回 UITableViewController)。

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

谁能告诉我这个特定的代码在 UITableViewController 上是否有任何用途?还是我可以删除的东西?无论应用程序是否存在,应用程序的行为似乎都不会改变。

【问题讨论】:

    标签: objective-c cocoa-touch


    【解决方案1】:

    如果这确实是 UITableViewController 的子类,则根本不需要提到的代码。正如您所提到的,第一响应者状态通常由 UI 控件处理。

    话虽如此,请注意以防开发人员尝试做一些非常时髦(不干净)的事情,例如将 UITableViewController 强制设置为 firstResponder,然后让另一段代码将请求转发给 firstResponser 期望它是UITableViewController,或将 NIB 中的一些方法附加到 firstResponder 对象。

    【讨论】:

      猜你喜欢
      • 2011-04-07
      • 1970-01-01
      • 2011-06-21
      • 2011-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多