IOS通知问题

时间:2010-11-03 20:26:14

标签: ios uitextfield uikeyboard

我正在处理Notification,我对此的理解是,只有当你点击文本字段时才会发布像“textFieldShouldBeginEditing:(UITextField *)iTextField”这样的IOS通知。

我的奇怪通知是,当我点击“返回”按钮返回上一个视图时,我的代码正在接收此通知。

我有可能再次收到此通知。我相信我们无需注册此类通知。我只注册了键盘隐藏/显示通知。

请建议。

2 个答案:

答案 0 :(得分:0)

编辑:我误解了这个问题。请参阅OP的答案。

嗯,导航时键盘消失。在这种情况下发布通知是有道理的。忽略响应视图转换而生成的通知的一种方法是跟踪视图控制器的状态。

- (void)viewWillDisappear:(BOOL)animated {
    _transitioningView = YES;
}

- (void)viewDidDisappear:(BOOL)animated {
    _transitioningView = NO;
}

- (void)viewWillAppear:(BOOL)animated {
    _transitioningView = YES;
}

- (void)viewDidAppear:(BOOL)animated {
    _transitioningView = NO;
}

现在,在键盘通知调用的选择器中,如果视图正在转换,则可以返回。

- (void)keyboardWillHide:(NSNotification*)notif {
    if (_transitioningView)
        return;
    // Handle keyboard dismissal.
}

答案 1 :(得分:0)

我发现了这个问题。问题是我在服务器调用之前将我的文本字段添加为第一响应者,然后仅在您点击返回按钮或点击任何其他文本字段时将其删除。这就是为什么当按下后退按钮时它没有被拒绝。现在我在服务器调用后很快就辞职了。