我在NotifyView
上添加了一个自定义视图(UIWindow
)并带有一个关闭按钮(将其从UIWindow
中删除)。
当PUSH通知进入didReceiveRemoteNotification
时,会添加此视图
有几种情况我可以在任何屏幕上,而我的键盘是通过UITextfield
/ UITextview
启动的。
在此阶段,如果推送到,则NotifyView
会添加到键盘后面的UIWindow
上。
收到PUSH后,我想重新键盘,所以我可以:
使用NSNotificaitonCenter
发布通知以重新签名所有文本字段/文本视图(如果有人firstResponder
)。为此,我必须保持活动指针指向所有控制器中当前活动的textfield / textview。
在AppDelegate中创建一个变量,并将活动的文本域/文本视图分配给它,并在PUSH上分配,并将resignFirstResponder
分配给PUSH。
这两个解决方案都需要更改所有控制器的代码,我正在寻找更通用的解决方案:
这些可能是通用解决方案。
如果有人可以为这个思考过程提供便利,或者有人立即解决这个问题,那将会非常有用。
答案 0 :(得分:7)
您可以使用以下方法
[[[UIApplication sharedApplication] keyWindow] endEditing:YES]
答案 1 :(得分:4)
尝试这个,对我来说它工作正常
[yourView endEditing:YES]
答案 2 :(得分:0)
问题在于,当你想要回归焦点时。
我已经实现了监听每个文本字段和最新的缓存。只是在该恢复状态之后只撤销那个(在推送中),需要专注于此。
答案 3 :(得分:0)
在委托方法中试试......
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
[self.view endEditing:YES]; // added this in for case when keyboard was already on screen
[self editStartDate:textField];
return NO;
}