iOS鍵盤處理

2022-08-20 01:00:16 字數 2219 閱讀 9232

鍵盤處理

一.常用屬性及方法

//文字框聚焦, 彈出鍵盤

-(bool)becomefirstresponder;

//文字框失焦,退出鍵盤

-(bool)resignfirstresponder;

//一次性退出任何鍵盤

[self.view endediting:yes];

//自定義鍵盤

@property (readwrite, retain) uiview *inputview;

//自定義鍵盤頂部顯示工具條

@property (readwrite, retain) uiview *inputaccessoryview;

//設定**步驟

uitextfield的**物件用來控制和監聽文字框的輸入

1>設定**物件

2>遵守協議

3>實現**方法

uitextfield**方法:

//當文字框開始獲得焦點的時候呼叫

- (void)textfielddidbeginediting:(uitextfield *)textfield;

//當使用者失去焦點的時候呼叫

- (void)textfielddidendediting:(uitextfield *)textfield;

//在文字框準備聚焦的時候呼叫,返回no代表不允許聚焦(編輯)

- (bool)textfieldshouldbeginediting:(uitextfield *)textfield;

//在文字框準備失去焦點(退出鍵盤)的時候呼叫,返回yes代表允許退出鍵盤

- (bool)textfieldshouldendediting:(uitextfield *)textfield;

//在使用者每次輸入的時候都會呼叫,返回yes代表允許輸入, 返回no,代表禁止改變文字框的文字(不能增加、刪除文字)

- (bool)textfield:(uitextfield *)textfield shouldchangecharactersinrange:(nsrange)range replacementstring:(nsstring *)string

//點選了鍵盤右下角的按鈕就會呼叫(return key)

- (bool)textfieldshouldreturn:(uitextfield *)textfield;

二.遞迴遍歷檢視中所有文字框

- (void)istextfield:(uiview *)view

else

}}三、監聽鍵盤的顯示和隱藏

1.監聽鍵盤通知

nsnotificationcenter *center = [nsnotificationcenter defaultcenter];//

單例//

1.顯示鍵盤

[center addobserver:self selector:@selector(keyboardwillshow:) name:uikeyboardwillshownotification object

:nil];

//2.隱藏鍵盤

[center addobserver:self selector:@selector(keyboardwillhide:) name:uikeyboardwillhidenotification object

:nil];

2.移除鍵盤通知(非arc比做操作)

- (void

)dealloc

3.注意:當彈出乙個新的鍵盤時,才會發出顯示鍵盤的通知

四、關閉鍵盤方法

#pragma mark 關閉鍵盤方法1[self.view endediting:yes];

//成功關閉鍵盤的條件:self.view或者其子檢視是第一響應者

#pragma mark 關閉鍵盤的方法2

//遞迴找到第一響應者,讓它把鍵盤給退回去

[[self findfirstresponder:self.view] resignfirstresponder];

- (uiview*)findfirstresponder:(uiview*)view

uiview *result =[self findfirstresponder:childview];

if (result) return

result;

}return

nil;

}

IOS鍵盤處理

有的解決方案是將檢視上的所有的東西都新增到乙個滾動檢視物件 uiscrollview 中,然後滾動檢視實現輸入框不被軟鍵盤覆蓋,個人覺得此方案好是好,但是太過麻煩。有的解決方案是通過乙個通知 uikeyboarddidshownotification 去實現的,需要用到事件監聽,而且需要自己定義並實...

IOS 鍵盤遮擋處理

1 textfield frame 根據textfield編輯狀態,動畫改變textfield frame 或用kvo監控鍵盤顯示及隱藏來改變textfield frame 2 新增到scrollview 根據textfield編輯狀態,改變scrollview contentoffset 用kvo...

iOS開發鍵盤表情處理

概述 原理 將獲取到的字串包含表情進行utf 8轉碼傳給伺服器,然後將伺服器返回的資料解碼,就可以將表情進行上傳 解析等操作,節省大量時間 應用場景 string字串 stringbyaddingpercentescapesusingencoding nsutf8stringencoding 編碼 ...