2011-05-12 57 views
0

我正在使用一個UIView,它們中的一個是UITextView。在iPad上使用UITextView的InputAccessoryView

當UITextView成爲第一響應者時,我將UIView設置爲它的InputAccessoryView。 鍵盤的配件視圖正常。

問題是,它看起來像UITextView是第一響應者,因爲文本可以立即鍵入內部(不需要點擊光標),但是當試圖解除鍵盤時,它不會關閉,即使向後導航鍵盤將保持不變。

只有當我再次點擊UITextView時,我才能關閉鍵盤,並且當我導航回時,鍵盤熄滅。

有沒有人有任何想法,發生了什麼?

我認爲可能會有一些與UIResponder遞歸,因爲UITextView是在它自己的inputAccessoryView,任何想法我怎麼能解決這個問題?

回答

0

我也有這個問題。以解決它:

[self.view endEditing:YES]; 
0

我找到原因是,當被設置爲inputAccessoryView,該UITextView的不FirstResponder現在。無論如何,如果你再次觸摸UITextView,它將成爲第一個響應者,然後一切都會好起來。

所以在iPhone上我的(醜陋的)的解決方案是:

  1. 觀察UIKeyboardDidShowNotification:

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];

  2. 接收UIKeyboardDidShowNotification後,再次發送becomeFirstResponder到UITextView的(在keyboardDidShow:)。

我已經測試將代碼置於textViewShouldBeginEditing:,但在那個時候,inputAccessoryView沒有顯示在屏幕上,所以它仍然不能成爲第一個響應者?

@ takeshi-kaga我已經試過了你的方式,但它不起作用。你能分享更多的細節嗎?