我有一个带有文本字段的UIAlertView。此视图正常工作;它出现在屏幕的上半部分,所以当键盘出现时,按钮和文本条目仍然可见并且可以点亮。
但是,如果来自其他应用程序的本地或远程通知进入,而文本字段是第一响应者并且键盘已启动,则它会隐藏我的警报并将新警报放在键盘后面。如果警报超过一行,则无法单击其按钮,用户无法将其关闭。它并没有通过任何正常机制解除我的警报视图 - 我的代理人都没有调用alertView:clickedButtonAtIndex:
或alertView:cancel:
- 而是简单地使用某种未知机制暂时隐藏它。
当通知隐藏我的警报视图时,我是否可以收到通知,因此我可以解除键盘并让用户处理通知?是否还有其他事件可以用来捕捉这个案例?
答案 0 :(得分:2)
注册申请UIApplicationWillResignActiveNotification
;当你得到它时,关闭你的警报视图。来自文档:
可以说活跃的应用程序具有焦点。它在启动后获得焦点,在弹出覆盖窗口时失去焦点或在设备被锁定时失去焦点,并在设备解锁时获得焦点。
警报视图(例如来自其他应用的通知所显示的视图)是叠加窗口。注意该通知,关闭提醒,以便键盘不会妨碍,并准备好在您的应用获得UIApplicationDidBecomeActiveNotification
时重新显示提醒。
答案 1 :(得分:0)
我希望这会有所帮助......
- (void)willPresentAlertView:(UIAlertView *)alertView {
if (newAlertViewWhichBlocks.tag == alertView.tag) {
[yourTextField resignFirstResponder];
}
}
请记住设置警告视图的委托。