gpt4 book ai didi

iOS 9.0 - 获取键盘将显示/隐藏来自其他应用程序的通知

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:33 24 4
gpt4 key购买 nike

我的 View Controller 注册到键盘通知(keyboardWillShow、keyboardWillHide)。

我启动我的应用程序。它显示注册到键盘通知的 View Controller 。键盘不可见。

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

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

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

如何确定键盘事件是否来 self 的应用?

最佳答案

您可以在 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];
}

关于iOS 9.0 - 获取键盘将显示/隐藏来自其他应用程序的通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33667721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com