iOS 判斷裝置型別 第一響應者

2021-07-09 09:25:16 字數 1286 閱讀 8149

加班解決本周五品質檢測的問題中,遇到這樣乙個問題,當我用4s模擬器跑的時候,鍵盤會擋住我的輸入框,所以相應處理是要把view上移,但是其他裝置,比如(5s/6s)螢幕比較大的裝置,就不會被遮擋住輸入框,此時不用理會,要解決的僅僅是4或4s裝置。

我在pch檔案裡,做了相應的巨集定義,主要以螢幕寬度來判斷:

//判斷機型

#define iphone4s ([uiscreen mainscreen].bounds.size.height == 480 ? yes : no)

#define iphone5s ([uiscreen mainscreen].bounds.size.height == 568 ? yes : no)

#define iphone6s ([uiscreen mainscreen].bounds.size.height == 667 ? yes : no)

#define iphone6plus ([uiscreen mainscreen].bounds.size.height == 736 ? yes : no)

我在解決問題中,出現了第二個問題,比如我的介面裡有a和b兩個輸入框,當當前是a輸入框的時候,鍵盤不會擋住a輸入框,所以螢幕的view不需要上移,但當在b輸入框的時候,鍵盤會擋住,此時就要view上移。

此時我用的是isfirstresponder 判斷是否為第一響應者的方法。

假設b輸入框為第一響應者,那麼就view上移,附上我兩個方法:  上移 和 下移

-(void)showkeyboardmarkviewup completion:nil];

}

-(void)hidekeyboardmarkviewdown completion:nil];

}

再附上,系統監聽鍵盤的顯示和隱藏的通知

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

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

本週分享內容比較簡單,哈哈。

iOS 聊聊第一響應

當檢視中有uitextfield或者uitextview等這些可以輸入的檢視時,可以用以下 獲取第一響應 uiview firstresponder keywindow performselector selector firstresponder uiview firstresponder key...

更優雅地判斷iOS裝置型別

隨著iphonex的發布,導航欄高度在iphone中也不再是乙個64的常量了。因此,很多地方需要針對齊劉海的導航欄高度做適配,目前網上很多關於判斷是否為iphonex,使用了螢幕寬高來比較或者utsname的machine來判斷。這兩個方法都有一些缺點,使用寬高不夠優雅,以後可能出現相同寬高的螢幕,...

IOS判斷裝置型別 稻草人 新浪部落格

第一種方法 if uidevice currentdevice model rangeofstring ipod location nsnotfound uialertview alert uialertview alloc initwithtitle 提公升 message 該裝置不支援此功能 d...