2011-05-10 66 views
4

我想在第一響應者(即顯示鍵盤)時向UITextField添加輸入附件視圖。顯然,在此狀態下將UIView分配給inputAccessoryView屬性不會顯示此視圖。我必須先解僱鍵盤並重新選擇UITextField在鍵盤可見時向UITextField添加輸入附件視圖

有沒有方法可以添加輸入附件視圖而不關閉和重新選擇?

回答

5

如果可能,只分配inputAccessoryView一次。如果您需要對其進行定製,並且只能確定在成爲第一響應者之前非常晚,那麼我仍然只會分配一次。但在UITextFieldDelegate方法textFieldShouldBeginEditing:中自定義inputAccessoryView的子視圖。像這樣:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    [self setupInputAccessoryViewForTextField:textField]; 
    return YES; 
} 
+0

好主意,謝謝。我現在刪除並重新添加子視圖。 – fabian789 2011-05-11 14:18:24

0

編輯:根據@ fabian789此方法不起作用。因人而異。


你可以嘗試調用

[myTextField setNeedsLayout]; 
[myTextField setNeedsRedraw]; 

,迫使它重繪自己?

聲明:這正是我想要的,我不知道它會起作用!

+0

+1不錯的想法,但不幸的是它不起作用。 – fabian789 2011-05-10 17:25:55

2

我只是想動態地添加/刪除輸入附件視圖。 最後我簡單地做這樣的:

[self.responceTextView resignFirstResponder]; 
self.responceTextView.inputAccessoryView = keyBoardToolbar; 
[self.responceTextView becomeFirstResponder]; 
+0

,它會弄亂鍵盤行爲。 – manmal 2012-11-20 12:16:16

+1

不適合我,它不。也許你應該用你使用的代碼開始一個問題。 – Darren 2012-11-20 15:24:37

+0

我的問題根本無法解決沒有私人API(我發現一個解決方法,雖然)。但是,當您的代碼處於未鎖定模式時,讓我的鍵盤左右搖晃。這可能與textview監聽器有關,但仍然 - 這是一種黑客攻擊。 – manmal 2012-11-21 15:30:16

14

您可以使用reloadInputViews上的TextView做

(我知道這是一個老的文章,但可能幫助別人)

+0

它確實幫了我很多,謝謝! – Aziz 2015-06-15 01:39:43

+0

這應該肯定是被接受的答案! – borchero 2015-12-13 21:37:56

相關問題