IOS研究之多個UITextField的鍵盤處理

2021-09-07 10:58:26 字數 1777 閱讀 6221

在ios開發中使用uitextfield時常須要考慮的問題就是鍵盤的處理。

有時候,彈出的鍵盤會將uitextfield區域覆蓋,影響使用者輸入。這個時候就要將檢視上移。這個時候我們須要考慮兩點:

1,改動檢視座標的時機;

2,上移的偏移是多大。

3,uitableview設定section間距 不明確的能夠看看。

我依據自己實際操作的實現方法例如以下:

1,獲取正在編輯的uitextfield的指標

定義乙個全域性的uitextfield的指標

uitextfield *temptextfiled;

在uitextfielddelegate**方法-(void)textfielddidbeginediting:(uitextfield *)textfield

-(void)textfielddidbeginediting:(uitextfield *)textfield

2,配置鍵盤處理事件

在- (void)viewdidload中實現鍵盤監聽:

[[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(keyboardwillshow:) name:uikeyboardwillshownotification object:nil];

[[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(keyboardwillhide:) name:uikeyboardwillhidenotification object:nil];

實現鍵盤顯示和鍵盤隱藏方法

在鍵盤顯示方法中獲取鍵盤高度。並配置鍵盤檢視位移【值得一提的是,該方法會在使用者切換中英文輸入法的時候也會執行。因此不必操心在切換到中文輸入法時鍵盤有多出一部分的問題】。

- (void)keyboardwillshow:(nsnotification *)notification 

}  然後實現鍵盤隱藏的處理:

在uitextfielddelegate**方法

-(void)textfielddidendediting:(uitextfield *)textfieldview或者

- (void)keyboardwillhide:(nsnotification *)notification

方法中實現檢視復位,例如以下**:

cgrect frame =  registertableview.frame;

frame.origin.y  = 44;//改動檢視的原點y座標就可以。

registertableview.frame=frame;

3,移除監聽

[[nsnotificationcenter defaultcenter]  

removeobserver:self  

name:uikeyboarddidshownotification  

object:nil];

[[nsnotificationcenter defaultcenter]  

removeobserver:self  

name:uikeyboarddidhidenotification    

object:nil];

這樣。不管我們的介面上有多少uitextfield。僅僅須要簡單的幾部就能夠實現uitextfield不被鍵盤蓋住。

IOS研究之多個UITextField的鍵盤處理

在ios開發中使用uitextfield時常需要考慮的問題就是鍵盤的處理。有時候,彈出的鍵盤會將uitextfield區域覆蓋,影響使用者輸入。這個時候就要將檢視上移。這個時候我們需要考慮兩點 1,修改檢視座標的時機 2,上移的偏移是多大。3,uitableview設定section間距 不明白的可...

ios開發之多點觸控

一般,tap pinch,pan swipe只是乙個簡單的單個觸控,它有一定的侷限性,所以多點觸控誕生了 為實現多點觸控,首先得做下列事情 對於使用多點觸控處理事件,你必須頻繁地儲存以後進行觸控比較的觸控狀態。例如,你要比較每個觸控的結束點位置和原始位置,你可以在touchesbegan withe...

ios開發之多點觸控

一般,tap pinch,pan swipe只是乙個簡單的單個觸控,它有一定的侷限性,所以多點觸控誕生了 為實現多點觸控,首先得做下列事情 對於使用多點觸控處理事件,你必須頻繁地儲存以後進行觸控比較的觸控狀態。例如,你要比較每個觸控的結束點位置和原始位置,你可以在touchesbegan withe...