如何在 iOS 6+ 上检测用户何时强制隐藏 iPad 上的键盘
Posted
技术标签:
【中文标题】如何在 iOS 6+ 上检测用户何时强制隐藏 iPad 上的键盘【英文标题】:How to detect when the user force hides the keyboard on the iPad on iOS 6+ 【发布时间】:2013-12-05 20:12:05 【问题描述】:之前在几个问题中提到过:
How to detect iPad user tap on keyboard hide button?
detect iPad keyboard Hiding button
...检测用户是否按下 iPad 上的隐藏键盘按钮的方法是订阅 UIKeyboardWillHideNotification 通知。
但是,显然从 ios 6 开始,此通知已在多个地方发送,而不仅仅是在用户按下缩回键盘按钮时。例如,即使键盘本身没有隐藏,当 iPad 旋转时也会发送该通知。
我发现了一个不优雅的解决方法,我将在此处发布,以防其他人遇到此问题,但非常感谢人们找到解决此问题的任何优雅解决方案。
【问题讨论】:
【参考方案1】:我针对此问题提出的当前解决方案是注意,在此通知期间键盘实际缩回的唯一时间是用户实际按下缩回按钮。在其他情况下,UIKeyboardWillHideNotification 和 UIKeyboardDidHideNotification 之间的延迟几乎为 0。
static BOOL immediate;
- (void) checkImmediate
if (immediate) return;
/* Do Stuff */
- (void) keyboardWillHide:(NSNotification*)note
immediate = NO;
[self performSelector:@selector(checkImmediate) withObject:self afterDelay:.01 inModes:@[NSRunLoopCommonModes]];
- (void) keyboardDidHide:(NSNotification*)note
immediate = YES;
【讨论】:
观察window.firstResponder
怎么样?我认为当键盘关闭时它会改变?以上是关于如何在 iOS 6+ 上检测用户何时强制隐藏 iPad 上的键盘的主要内容,如果未能解决你的问题,请参考以下文章
iOS 9:如何检测用户何时对推送通知请求说“不允许”? [复制]