2011-05-05 65 views
0

我有一個應用程序,其中有2個textfields和一個textview.when,當我單擊第一個文本字段時,我的鍵盤彈出窗口並且他們沒有問題,但是當我輸入第二個textfield我的鍵盤彈出窗口並覆蓋textfield。我希望當我點擊第二個文本字段時,textfield應該向上移動一點,這樣我可以輸入並且我有一個textview但是我已經編寫了textview的代碼,以便當我輸入文本視圖它會自動移動。問題是與textfield.Can任何人都可以幫助我解決這個問題。謝謝如何使文本字段在鍵盤覆蓋時向上移動

回答

1

查看下面的鏈接 - 該解決方案由Micheal Tyson編寫。它解決了UITableView和UIScrollView,可以很容易地進行更改,並且像一個插入式組件一樣工作。我正在使用它,它運作良好。

A drop-in universal solution for moving text fields out of the way of the keyboard

+0

嗨delirus,我已經通過你在答案中提到的鏈接,但我有一個問題,鍵盤保持完整的整個應用程序。即使文本字段已結束,它不會辭職 – Rani 2011-05-06 06:01:15

0

創建兩個方法,如下所示,第一個是使視圖稍微向上,第二個是將觀點帶回原來的位置

第一種方法:

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:.3]; 

self.view.transform = CGAffineTransformTranslate(self.view.transform, 0, -175); 
[UIView commitAnimations]; 

方法二:考慮使用UITableViewController

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:.3]; 

self.view.transform = CGAffineTransformTranslate(self.view.transform, 0, 175); 
[UIView commitAnimations]; 

[self.destext resignFirstResponder]; 

呼籲textfieldEditingDidbegin這些方法和DidEndonExit

3

。否則執行UITextFieldDelegate並將您的UIView移動到- (void)textFieldDidBeginEditing:(UITextField *)textField方法中的所需位置。

+1

+1推薦的UITableViewController - 我不能強調不夠是多麼方便實現形式時。 – Till 2011-05-05 10:30:03

+0

這不是最好的答案,因爲如果用戶使用藍牙鍵盤,可以調用textFieldDidBeginEditing,並且不需要任何滾動。 YOu應該觀看鍵盤通知事件來檢測鍵盤的存在。 – mahboudz 2012-12-14 11:05:30

0

將視圖添加到UIScrollView。然後使用UITextFieldDelegate方法設置當觸摸textField時的contentOffset。當用戶輸入完文字後重置contentOffset

0

我花了一段時間來含住一個很明顯的一個,你可能已經嘗試過了,但一個是從橫向更改爲縱向。

0

我已經創建了UIView的簡單子類,它包含UITextView和一個發送按鈕,當鍵盤顯示時向上移動,並在鍵盤隱藏時向下移動。除此之外,UITextView根據文本的大小調整大小。

在這裏看一看:

https://github.com/kerrygrover/KBTextView

enter image description here

相關問題