UITextField 單行文本框
核心屬性:
text屬性(NSString)獲取用戶的輸入
NSLog(@"%@",self.textField.text);
關(guān)閉鍵盤
彈起鍵盤的原因:因?yàn)槲谋究虺蔀榱说谝豁憫?yīng)者
當(dāng)用戶觸摸屏幕上某點(diǎn)之后系統(tǒng)做了什么谓苟?
首先,開啟了查找hit-view的過程田巴,根據(jù)觸點(diǎn)的坐標(biāo)忧勿,視圖給直接子視圖發(fā)hitTest消息,詢問該點(diǎn)是否在其中贰剥,子視圖發(fā)現(xiàn)如果點(diǎn)不在其中倾剿,則返回nil,如果發(fā)現(xiàn)點(diǎn)在其中蚌成,則該子視圖再繼續(xù)給他的所有直接子視圖發(fā)hitTest消息前痘,層層深入后,直到某一個(gè)視圖不再具有子視圖笑陈,但是點(diǎn)在它內(nèi)部际度,則它將自己返回葵袭,于是就找到了hitView
然后涵妥,系統(tǒng)開始提供響應(yīng),如果該視圖有響應(yīng)坡锡,則執(zhí)行響應(yīng)代碼蓬网,如果沒有提供響應(yīng),則將事件傳遞給父視圖甚至于控制器鹉勒,一直到代理帆锋,如果這個(gè)鏈條中都沒有提供響應(yīng),則該事件被拋棄
但是禽额,如果這次觸摸的點(diǎn)在文本框中锯厢,hitView為UITextField類型的,則不會(huì)再去一層層的找響應(yīng)脯倒,而是直接讓文本框成為了第一響應(yīng)者实辑,window檢測(cè)到第一響應(yīng)者類型是文本框時(shí),自動(dòng)彈出鍵盤
所以藻丢,如果想關(guān)閉鍵盤剪撬,讓文本框放棄第一響應(yīng)者身份即可
成為第一響應(yīng)者(彈鍵盤)
[textField becomeFirstResponder] ;
釋放第一響應(yīng)者(關(guān)鍵盤)
[textField resignFirstResponder];
其它更方便關(guān)閉鍵盤的方式
前提:當(dāng)界面上包含很多文本框時(shí),一個(gè)一個(gè)的釋放第一響應(yīng)者身份比較麻煩
解決方法:設(shè)置文本框的父視圖結(jié)束編輯狀態(tài)即可
[view endEditing:YES];
什么時(shí)候關(guān)鍵盤悠反?
時(shí)機(jī)一:點(diǎn)擊空白處
重寫控制器的touchesBegan方法即可
//關(guān)鍵盤的時(shí)機(jī):觸摸空白處(觸摸的是控制器的view)
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
}
時(shí)機(jī)二:點(diǎn)擊鍵盤的右下角
選中textField残黑,連線一個(gè)方法,其中斋否,Events參數(shù)一定要選擇“Did End On Exit”即可梨水,如圖:
附模擬器Simulator快捷鍵:
調(diào)整模擬器大小 commond + 1 或2或3或4
模擬器水平或豎直 commond + ?? 或 common + ??
虛擬機(jī)沒有home鍵? 只能 commond shif? h
Option+Shift? ? 可以在模擬器中調(diào)出雙指拖動(dòng)效果
Option? ? ? 可以在模擬器中調(diào)出雙指放大縮小效果
command+shift+H按兩下 關(guān)閉程序
還有關(guān)于模擬器鍵盤快捷鍵:如下圖
模擬器輸入中文方法:
Xcode 菜單項(xiàng) --> Product --> Scheme --> Edit Scheme -->? Run --> Option --> Application Region 設(shè)置為 『中國(guó)』
重新運(yùn)行程序,如下圖所示就可以切換輸入法了
屏幕的大小:
iphone 4/4s? ? ? 尺寸:3.5英寸? ? ? ? 實(shí)際的點(diǎn)(大幸鸪簟):320*480? ? ? 分辨率:640*960
iphone 5/5s? ? ? 尺寸:4.0英寸? ? ? ? 實(shí)際的點(diǎn):320*568? ? ? ? ? ? ? ? ? ? ? 分辨率:640*1136
iphone6? ? ? ? ? ? 尺寸:4.7? ? ? ? ? ? ? ? ? 實(shí)際屏幕的點(diǎn):(375*667)? ? ? ? ? ? ? ? 分辨率:750*1334
iphone Plus? ? ? 尺寸:5.5? ? ? ? ? ? ? ? ? 實(shí)際:(540*960)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 分辨率:1080*1920