[英]removing keyboard from Screen without calling resignFirstResponder
我在UIWindow
上添加了一個自定義視圖( NotifyView
),帶有一個關閉按鈕(從UIWindow
中刪除它)。 當PUSH通知進入didReceiveRemoteNotification
時會添加此視圖,有幾種情況我可以在任何屏幕上,並且我的鍵盤通過UITextfield
/ UITextview
。 在此階段,如果推NotifyView
則會在鍵盤后面的UIWindow
上添加NotifyView
。 一旦收到PUSH,我想重新簽名鍵盤,所以我可以:
使用NSNotificaitonCenter
發布通知以重新firstResponder
所有文本字段/ firstResponder
(如果有人是firstResponder
)。 為此,我必須保持活動指針指向所有控制器中當前活動的textfield / textview。
在AppDelegate中創建一個變量,並為其和PUSH分配活動的文本域/ resignFirstResponder
,並在PUSH上為resignFirstResponder
。
這兩個解決方案都需要更改所有控制器的代碼,我正在尋找更通用的東西,如:
這些可能是通用解決方案。
如果有人可以促進這個思考過程,或者有人對此案例有任何直接的解決方案,那將是非常有幫助的。
您可以使用以下方法
[[[UIApplication sharedApplication] keyWindow] endEditing:YES]
嘗試這個,對我來說它工作正常[yourView endEditing:YES]
問題是,當你想要回饋焦點時。
我已經實現了監聽每個文本字段和緩存,這是最新的。 只有那個(在推送中)在該恢復狀態之后才辭職,需要專注於此。
在委托方法中嘗試這個...
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
[self.view endEditing:YES]; // added this in for case when keyboard was already on screen
[self editStartDate:textField];
return NO;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.