//鍵盤的高度
成都創(chuàng)新互聯(lián)公司成立于2013年,先為望謨等服務(wù)建站,望謨等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為望謨企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
2 我們先定義兩個(gè)textField:用來接收鍵盤的輸入值
UITextField * textfield2 = [[UITextField alloc] initWithFrame:CGRectMake(170, 240, 180, 40)];
textfield2.tag = 222;
textfield2.backgroundColor = [UIColor orangeColor];
textfield2.layer.cornerRadius = 5;
textfield2.layer.masksToBounds = YES;
textfield2.clearButtonMode = UITextFieldViewModeAlways;
[self.view addSubview:textfield2];
UITextField * textfield3 = [[UITextField alloc] initWithFrame:CGRectMake(170, 300, 100, 40)];
textfield3.tag = 223;
textfield3.placeholder = @"驗(yàn)證碼";
textfield3.layer.cornerRadius = 5;
textfield3.layer.masksToBounds = YES;
textfield3.clearButtonMode = UITextFieldViewModeAlways;
textfield3.backgroundColor = [UIColor whiteColor];
[self.view addSubview:textfield3];
3 //鍵盤的輔助視圖
//設(shè)置輔助視圖的大小
UIView * grayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 40)];
//輔助視圖的背景顏色
grayView.backgroundColor = [UIColor lightGrayColor];
//.注意!!關(guān)鍵給鍵盤設(shè)置輔助視圖
textfield2.inputAccessoryView = grayView;
textfield3.inputAccessoryView = grayView;
//注意!!!!!!在這里我們用數(shù)組來接收1-9的值
NSArray * array = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"×",@"0",@"return"];
//X號操作刪除最后一個(gè)字符
//return 收回鍵盤
NSInteger index=0;
//設(shè)置每一行走的次數(shù)
for (int i = 0; i4; i++) {
//設(shè)置每一趟走的次數(shù)
for (int j = 0; j3; j++) {
//數(shù)組按鈕的顏色
button.backgroundColor = [UIColor whiteColor];
//數(shù)組按鈕上的文字
[button setTitle:array[index] forState:UIControlStateNormal];
index++;//將數(shù)組的元素進(jìn)行累加統(tǒng)計(jì)
//設(shè)置字體顏色
[button setTitleColor:[UIColor purpleColor] forState:UIControlStateNormal];
//加粗字體
button.titleLabel.font = [UIFont boldSystemFontOfSize:20];
//設(shè)置邊框的顏色
button.layer.borderColor = [UIColor grayColor].CGColor;
//設(shè)置邊框的寬度
button.layer.borderWidth = 3;
//設(shè)置1-9的數(shù)字方法
if (i3) {
[button addTarget:self action:@selector(b1Action:) forControlEvents:UIControlEventTouchUpInside];
}
else if(i == 3 j == 0){
//叉號 用來刪除字符
[button addTarget:self action:@selector(deleteChar:) forControlEvents:UIControlEventTouchUpInside];
}
-(void)b1Action:(UIButton *)b1{
//點(diǎn)擊當(dāng)前按鈕 就把按鈕上的文字 拼接到輸入框中
//1.獲取輸入框
}
-(void)deleteChar:(UIButton *)button{
}
-(void)takeBackKeyboard:(UIButton *)button{
UITextField *textField2 = (UITextField *) [self.view viewWithTag:222];
//釋放第一響應(yīng)者 也就是收回鍵盤
if (textField2.isFirstResponder == YES) {
[textField2 resignFirstResponder];}
}
效果如圖:
在iOS中使用UITextField控件時(shí)會(huì)彈出軟鍵盤,此時(shí)默認(rèn)在軟鍵盤上方會(huì)出現(xiàn)一個(gè)工具條,一般默認(rèn)工具條有兩種樣式。
可以設(shè)置info.plist文件的Localization native development region項(xiàng)為cn,此時(shí)運(yùn)行會(huì)發(fā)現(xiàn)工具條的Done已經(jīng)變成了完成。
本人在項(xiàng)目中有用到 IQKeyboardManager 來增強(qiáng)鍵盤的功能,如果使用了這個(gè)輪子,設(shè)置
此時(shí)鍵盤的工具條即被隱藏。
第二種方法我使用了UITextField的inputAccessoryView屬性,可以給該屬性設(shè)置一個(gè)高度為0的View,也可以達(dá)到隱藏鍵盤工具條的效果
跟隱藏工具條中的第二種方法一樣,給inputAccessoryView屬性設(shè)置一個(gè)自定義的View,即達(dá)到自定義效果,此處把工具條改成紅色作為演示
運(yùn)行效果如下:
自定義鍵盤屬于App的擴(kuò)展功能,添加擴(kuò)展鍵盤的步驟如下:
選擇自定義擴(kuò)展鍵盤,點(diǎn)擊Next,會(huì)自動(dòng)創(chuàng)建一個(gè)父類是UIInputViewController 的KeyboardViewController文件。
要想app應(yīng)用和擴(kuò)展進(jìn)行通訊,需要?jiǎng)?chuàng)建Appgroup通道,創(chuàng)建方法如下圖所示
同樣在Targets 下的 app選中也要用同樣的方法創(chuàng)建傳送通道,app和擴(kuò)展才可以傳遞數(shù)據(jù)。
下面就是畫鍵盤了,鍵盤可以用xib創(chuàng)建,下面就是我創(chuàng)建的鍵盤
下面就是監(jiān)聽button點(diǎn)擊,進(jìn)行大小寫切換,刪除輸入等功能。
大小寫切換可以自定義一個(gè)方法,然后根據(jù)傳入的是否大寫或者小寫,返回?cái)?shù)組內(nèi)容,重新給button賦值
監(jiān)聽內(nèi)容輸入到輸入框,系統(tǒng)有自己的方法。?
"[weakSelf.textDocumentProxyinsertText:content];”
就可以進(jìn)行監(jiān)聽輸入的內(nèi)容了
平常項(xiàng)目中有可能會(huì)遇到系統(tǒng)或者第三方鍵盤不滿足于需求,我們就只能自定義鍵盤來滿足產(chǎn)品的奇奇怪怪需求
如圖:
1、 LAKeyboardDefine.h
2、通過設(shè)置顏色返回圖片的分類 UIImage+LAColor
3、獲取 UITextField 光標(biāo)的分類 UITextField+LARange
文章名稱:ios開發(fā)自定義鍵盤,ios開發(fā)自定義鍵盤模式
文章起源:http://jinyejixie.com/article4/dssdeoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、用戶體驗(yàn)、建站公司、網(wǎng)站設(shè)計(jì)公司、網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)