【问题标题】:becomeFirstResponder seems to work only 1st time for shake gesturebecomeFirstResponder 似乎仅第一次用于摇动手势
【发布时间】:2009-08-15 15:07:13
【问题描述】:

我通过在 UIViewController 中执行此操作来使我的应用摇动手势兼容:

- (void)viewWillAppear:(BOOL)animated
{
    [self.view becomeFirstResponder];
    [super viewWillAppear:animated];
}

问题是,当我翻转到另一个视图时(我正在使用具有翻转视图和根视图控制器的“实用程序”模板来管理它们),当我回来时,摇动手势停止工作。

我看到调用了viewWillAppear 方法,但视图似乎没有第二次重新获得第一响应者状态。

【问题讨论】:

    标签: iphone


    【解决方案1】:

    谁知道 .. 你必须在viewDidAppear 中拨打becomeFirstResponder 而不是viewWillAppear。

    【讨论】:

    • 我遇到了同样的问题!我想我在 App Dev 论坛之一上找到了答案。
    【解决方案2】:

    是的,这证实了我......我试图将控制器设置为来自应用程序委托的 firstResponder。同时,我发现在策略方法中撒上这条日志语句对调试很有帮助。

    NSLog(@"%s: I %s first responder! (%@)", __FUNCTION__, [self isFirstResponder] ? "am" : "am not", self);
    

    另外,为了让我可以在任意时间触发它,我启用了“orientation”方法并把它放在那里。

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    NSLog(@"%s: I %s first responder! (%@)", __FUNCTION__, [self isFirstResponder] ? "am" : "am not", self);
    return YES;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-19
      • 2018-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多