iOS解決鍵盤遮擋輸入框問題

2021-08-06 05:48:02 字數 1185 閱讀 9857

一、彈出鍵盤時,將整個檢視上移:監聽鍵盤事件

//監聽鍵盤

//1、鍵盤彈出時

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

//2、鍵盤收回時

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

/**監聽鍵盤彈出,輸入框上移

*/-(void)keyboardwillshow];

}/**

監聽鍵盤彈收回,輸入框下移

*/-(void)keyboardwillhide

如果你的uiviewcontroller繼承uitableviewcontroller,這樣系統會自動處理鍵盤遮擋的問題,如果不是,但又需要使用uitableview,該怎麼做呢?

二、如果uitextfield放在uitableview上,就要知道每個輸入框所在的cell的位置,然後再做處理。

- (void)textfielddidbeginediting:(uitextfield *)textfield 

cgfloat keyboardheight = 216.0f;

if (tableview.frame

.size

.height - keyboardheight <= rectintableview.origin

.y + textfield.frame

.size

.height+thfloat(36))

三、三句**實現該功能

uitableviewcontroller *tvc =[[uitableviewcontroller alloc]initwithstyle:uitableviewstyleplain];

tableview = tvc.tableview;

[self addchildviewcontroller:tvc];

解決鍵盤遮擋輸入框問題

void viewdidload 如果輸入框被擋住 那麼將 self.view上移 先要獲取到鍵盤的 frame,才能得知輸入框是否被擋住 通過新增觀察者 來拿到鍵盤的 frame 監聽鍵盤抬起事件.uikeyboardwillshownotification 系統封裝的事件 nsnotificat...

鍵盤遮擋輸入框

1 將輸入框的 設定為self 在lb檔案中將輸入框的delegate設定為file s owner 或者使用 textfield.delegate self 2 將輸入框所對應的viewcontroller.h設定實現了uitextfielddelegate協議 在viewcontroller.m...

iOS鍵盤彈出遮擋輸入框的解決方法

問題 輸入框被鍵盤遮擋 期望效果 輸入框位於鍵盤上方 解決思路 監聽鍵盤出現www.cppcns.com和消失的狀態,當鍵盤出現時,當前檢視上移,當輸入完成收起鍵盤時,檢視回到初始狀態。難點 檢視向上平移的距離 原理都差不多,oc版參考 www.cppcns.com self.phoneinput ...