【问题标题】:iOS 9.0 - getting keyboard will show/hide notifications from other appsiOS 9.0 - 获取键盘将显示/隐藏来自其他应用程序的通知
【发布时间】:2015-11-12 09:04:52
【问题描述】:

我的视图控制器注册到键盘通知(keyboardWillShow、keyboardWillHide)。

我启动我的应用程序。它显示了注册到键盘通知的视图控制器。键盘不可见。

我切换到短信应用程序并开始编写文本。在我写作时,我的应用会收到通知。通知在屏幕顶部显示为横幅。

当我点击横幅时,我的应用会打开并立即收到键盘通知。

据我所知,这个键盘通知与短信的键盘有关。

如何识别键盘事件是否来自我的应用?

【问题讨论】:

标签: ios iphone


【解决方案1】:

您可以在viewWillDisappear 中删除对观察者的监听(键盘通知),并可以在viewWillAppear 中重新开始监听观察者,这可能会解决问题

- (void)registerForKeyboardNotifications
{
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWasShown:)
                                                 name:UIKeyboardWillShowNotification object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWillBeHidden:)
                                                 name:UIKeyboardWillHideNotification object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(applicationWillEnterBackground:)
                                                 name:UIApplicationWillResignActiveNotification
                                               object:nil];
}

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self registerForKeyboardNotifications];
}

- (void)deregisterForKeyboardNotifications {
    NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
   [center removeObserver:self name:UIKeyboardWillShowNotification object:nil];
   [center removeObserver:self name:UIKeyboardWillHideNotification object:nil];
   [center removeObserver:self name:UIApplicationWillResignActiveNotification object:nil];
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self deregisterForKeyboardNotifications];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 2019-05-10
    相关资源
    最近更新 更多