iPad Pro (12.7寸)同樣的環(huán)境,設(shè)置相同的UIkeyboard,兩個不同的APP的彈出來的鍵盤不同。
創(chuàng)新互聯(lián)建站長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為碾子山企業(yè)提供專業(yè)的做網(wǎng)站、網(wǎng)站建設(shè),碾子山網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
怎么樣設(shè)置12.9寸 iPad Pro 全鍵盤或去掉全鍵盤?
這個跟我們APP開發(fā)時使用哪種啟動頁面有關(guān).(So TM ? What?)
樣式2我們在開發(fā)APP時建立工程啟動頁面默認(rèn)是會帶有l(wèi)uanch storyboard,這個設(shè)置啟動頁面的方式是蘋果推崇的,這樣設(shè)置是12.9寸的ipadpro是跟物理鍵盤類似的全鍵盤,跟我們實(shí)體物理鍵盤一樣,
但是當(dāng)用lauch image設(shè)置啟動頁面時鍵盤默認(rèn)樣式1鍵盤模式。
在ios開發(fā)中,鍵盤很常用。在sdk版本5.0以前,鍵盤高度是固定值216px;5.0出來以后,鍵盤高度會隨著鍵盤語言變化(中文要高些),在這種情況下一般而言對于界面需要重新布局。方法是利用NSNotificationCenter。
UIKeyboardWillShowNotification;UIKeyboardDidShowNotification; UIKeyboardWillHideNotification; UIKeyboardDidHideNotification;
這幾個notification是5.0sdk之前就有的,顧名思義就知道意思了。
UIKeyboardWillChangeFrameNotification __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);UIKeyboardDidChangeFrameNotification __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
這兩個是sdk 5.0以后出來的,用來處理鍵盤高度的變化。
使用方法是:首先在notification注冊觀察者,比如:
if([[[UIDevice currentDevice] systemVersion] floatValue] = 5.0) { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil];}
當(dāng)鍵盤高度將要變化時,就會收到通知,在通知的參數(shù)中可以得到鍵盤目前的高度和變化的目標(biāo)高度,比如:
-(void)keyboardWillChangeFrame:(NSNotification*)notif{#if __IPHONE_OS_VERSION_MIN_REQUIRED = __IPHONE_3_2 NSValue *keyboardBoundsValue = [[notif userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey]; #else NSValue *keyboardBoundsValue = [[notif userInfo] objectForKey:UIKeyboardBoundsUserInfoKey]; #endif CGRect keyboardEndRect = [keyboardBoundsValue CGRectValue]; CGRect inputFrame = self.feedBackTextView.frame; //kb 216 vs textFrame 185 float delta = keyboardEndRect.size.height - 216; float originalHeight = inputFrame.size.height; inputFrame.size.height = 185 - delta; if (inputFrame.size.height != originalHeight) { self.feedBackTextView.frame = inputFrame; self.feedBackBackgroundView.frame = inputFrame; }}
另外一些從notification.userInfo中可以取得的key如下:
UIKeyboardFrameBeginUserInfoKey // NSValue of CGRectUIKeyboardFrameEndUserInfoKey // NSValue of CGRectUIKeyboardAnimationDurationUserInfoKey // NSNumber of doubleUIKeyboardAnimationCurveUserInfoKey // NSNumber of double
notif中userInfo的完整信息如下 :
keyboardChange:{ UIKeyboardAnimationCurveUserInfoKey = 0; UIKeyboardAnimationDurationUserInfoKey = "0.25"; UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 216}}"; UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 372}"; UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 588}"; UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 264}, {320, 216}}"; UIKeyboardFrameChangedByUserInteraction = 0; UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 480}, {320, 216}}";}
下面是一個完整的解決方案,用戶需要知道鍵盤高度的細(xì)致變化
下面這個解決方案就只考慮鍵盤出現(xiàn)和消失的處理
iOS開發(fā)之自定義表情鍵盤(組件封裝與自動布局)
iOS開發(fā)之自定義表情鍵盤(組件封裝與自動布局)