我正在通知和我的理解是,像「textFieldShouldBeginEditing:(UITextField *)iTextField」這樣的IOS通知只在您點擊文本字段時纔會發佈。IOS通知問題
對於我奇怪的通知,當我點擊「返回」按鈕返回到先前的視圖時,我的代碼正在接收此通知。
我有可能再次收到此通知。我相信我們不需要註冊這樣的通知。我只註冊了鍵盤隱藏/顯示通知。
請建議。
我正在通知和我的理解是,像「textFieldShouldBeginEditing:(UITextField *)iTextField」這樣的IOS通知只在您點擊文本字段時纔會發佈。IOS通知問題
對於我奇怪的通知,當我點擊「返回」按鈕返回到先前的視圖時,我的代碼正在接收此通知。
我有可能再次收到此通知。我相信我們不需要註冊這樣的通知。我只註冊了鍵盤隱藏/顯示通知。
請建議。
我發現這個問題。問題是我在服務器調用之前將我的文本字段添加爲第一響應者,然後只在您按下返回按鈕或打到任何其他文本字段時纔將其刪除。這就是爲什麼當按下後退按鈕時它沒有被辭退。現在我已經在服務器調用後立即辭職了。
很高興你能解決這個問題,但是這與我上次評論中的建議有什麼不同? – Justin 2010-11-05 18:43:41
呃,據我瞭解,按照你的方式不會幫助我,因爲我的textfield仍然是一個響應者,在keyboardwillhide方法之後,即使我們在那裏放置一個return語句,它總是會去textFieldWillRespond。 – Abhinav 2010-11-07 20:40:42
是的,我開始誤解了你的問題,但最後建議你只需調用'resignFirstResponder',因爲你有一個引用該字段。這並不重要。如果有效,其他人可以在這裏找到答案,那麼一切都很好。 – Justin 2010-11-08 13:43:35
編輯:我誤解了這個問題。看到OP的回答。
那麼,鍵盤將導航後消失。在這種情況下發布通知是有道理的。忽略通過視圖轉換生成的通知的一種方法是跟蹤視圖控制器的狀態。
- (void)viewWillDisappear:(BOOL)animated {
_transitioningView = YES;
}
- (void)viewDidDisappear:(BOOL)animated {
_transitioningView = NO;
}
- (void)viewWillAppear:(BOOL)animated {
_transitioningView = YES;
}
- (void)viewDidAppear:(BOOL)animated {
_transitioningView = NO;
}
現在,在由鍵盤通知調用的選擇器中,如果視圖正在轉換,則可以返回。
- (void)keyboardWillHide:(NSNotification*)notif {
if (_transitioningView)
return;
// Handle keyboard dismissal.
}
這沒有幫助。放置返回聲明不會打破流程。它仍然帶我到textFieldShouldBeginEditing:(UITextField *)iTextField方法:( – Abhinav 2010-11-03 21:02:42
然後我沒有正確理解你的問題。你是否說當你離開字段的父視圖控制器時調用'textFieldShouldBeginEditing:' – Justin 2010-11-03 21:21:43
讓我當我點擊我的文本字段時,我通過self.parentController setFirstResponderView:iTextField]將該文本字段設置爲我的第一個響應者。現在,當我點擊後退按鈕時,我無法退出第一響應者爲這個文本字段,這是造成這個問題的原因 – Abhinav 2010-11-03 21:27:58
請考慮使用更具描述性的問題標題。 – Justin 2010-11-03 20:41:01