中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

iPhone開(kāi)發(fā)中給鍵盤加個(gè)隱藏工具條
來(lái)源:易賢網(wǎng) 閱讀:1442 次 日期:2014-11-04 09:09:04
溫馨提示:易賢網(wǎng)小編為您整理了“iPhone開(kāi)發(fā)中給鍵盤加個(gè)隱藏工具條”,方便廣大網(wǎng)友查閱!

因?yàn)閕Phone手機(jī)采用的觸摸涉及,本身沒(méi)有硬件鍵盤,一般都是點(diǎn)擊輸入框之后,彈出一個(gè)虛擬鍵盤出來(lái),因此在iPhone開(kāi)發(fā)中,經(jīng)常在完成編輯輸入之后,要寫程序代碼來(lái)關(guān)閉軟鍵盤的輸出,非常繁瑣,當(dāng)然關(guān)閉軟鍵盤的方式有很多,比如放一個(gè)按鈕在底層,通過(guò)點(diǎn)擊屏幕的空白處來(lái)關(guān)閉鍵盤;也可以處理Return鍵盤事件來(lái)關(guān)閉鍵盤,這些暫且不說(shuō),本文要分享的是一個(gè)鍵盤頂部工具條的類,通過(guò)這個(gè)工具條,可以很方便的關(guān)閉鍵盤,而且有上一項(xiàng),下一項(xiàng)的輸入框切換,非常方便,效果請(qǐng)看下圖:

名單

類文件如下:

KeyBoardTopBar.h

//

// KeyBoardTopBar.h

//

//

// Created by walkman on 10-12-2.

// Copyright 2010 手機(jī)主題 http://www.shouji138.com All rights reserved.

//

#import

@interface KeyBoardTopBar : NSObject {

UIToolbar *view;//工具條

NSArray *TextFields;//輸入框數(shù)組

BOOL allowShowPreAndNext;//是否顯示上一項(xiàng)下一項(xiàng)

BOOL isInNavigationController;//是否在導(dǎo)航視圖中

UIBarButtonItem *prevButtonItem;//上一項(xiàng)按鈕

UIBarButtonItem *nextButtonItem;//下一項(xiàng)按鈕

UIBarButtonItem *hiddenButtonItem;//隱藏按鈕

UIBarButtonItem *spaceButtonItem;//空白按鈕

UITextField *currentTextField;//當(dāng)前輸入框

}

@property(nonatomic,retain) UIToolbar *view;

-(id)init; //初始化

-(void)setAllowShowPreAndNext:(BOOL)isShow; //設(shè)置是否顯示上一項(xiàng)下一項(xiàng)

-(void)setIsInNavigationController:(BOOL)isbool; //設(shè)置是否在導(dǎo)航視圖中

-(void)setTextFieldsArray:(NSArray *)array; //設(shè)置輸入框數(shù)組

-(void)ShowPrevious; //顯示上一項(xiàng)

-(void)ShowNext; //顯示下一項(xiàng)

-(void)ShowBar:(UITextField *)textField; //顯示工具條

-(void)HiddenKeyBoard; //隱藏鍵盤

@end

KeyBoardTopBar.m 文件

//

// KeyBoardTopBar.m

//

// Created by walkman on 10-12-2.

// Copyright 2010 手機(jī)主題下載 http://www.shouji138.com All rights reserved.

//

#import "KeyBoardTopBar.h"

@implementation KeyBoardTopBar

@synthesize view;

//初始化控件和變量

-(id)init{

if(self = [super init]) {

prevButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"上一項(xiàng)" style:UIBarButtonItemStyleBordered target:self action:@selector(ShowPrevious)];

nextButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"下一項(xiàng)" style:UIBarButtonItemStyleBordered target:self action:@selector(ShowNext)];

hiddenButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"隱藏鍵盤" style:UIBarButtonItemStyleBordered target:self action:@selector(HiddenKeyBoard)];

spaceButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem: UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

view = [[UIToolbar alloc] initWithFrame:CGRectMake(0,480,320,44)];

view.barStyle = UIBarStyleBlackTranslucent;

view.items = [NSArray arrayWithObjects:prevButtonItem,nextButtonItem,spaceButtonItem,hiddenButtonItem,nil];

allowShowPreAndNext = YES;

TextFields = nil;

isInNavigationController = YES;

currentTextField = nil;

}

return self;

}

//設(shè)置是否在導(dǎo)航視圖中

-(void)setIsInNavigationController:(BOOL)isbool{

isInNavigationController = isbool;

}

//顯示上一項(xiàng)

-(void)ShowPrevious{

if (TextFields==nil) {

return;

}

NSInteger num = -1;

for (NSInteger i=0; i<[TextFields count]; i++) {

if ([TextFields objectAtIndex:i]==currentTextField) {

num = i;

break;

}

}

if (num>0){

[[TextFields objectAtIndex:num] resignFirstResponder];

[[TextFields objectAtIndex:num-1 ] becomeFirstResponder];

[self ShowBar:[TextFields objectAtIndex:num-1]];

}

}

//顯示下一項(xiàng)

-(void)ShowNext{

if (TextFields==nil) {

return;

}

NSInteger num = -1;

for (NSInteger i=0; i<[TextFields count]; i++) {

if ([TextFields objectAtIndex:i]==currentTextField) {

num = i;

break;

}

}

if (num<[TextFields count]-1){

[[TextFields objectAtIndex:num] resignFirstResponder];

[[TextFields objectAtIndex:num+1] becomeFirstResponder];

[self ShowBar:[TextFields objectAtIndex:num+1]];

}

}

//顯示工具條

-(void)ShowBar:(UITextField *)textField{

currentTextField = textField;

if (allowShowPreAndNext) {

[view setItems:[NSArray arrayWithObjects:prevButtonItem,nextButtonItem,spaceButtonItem,hiddenButtonItem,nil]];

}

else {

[view setItems:[NSArray arrayWithObjects:spaceButtonItem,hiddenButtonItem,nil]];

}

if (TextFields==nil) {

prevButtonItem.enabled = NO;

nextButtonItem.enabled = NO;

}

else {

NSInteger num = -1;

for (NSInteger i=0; i<[TextFields count]; i++) {

if ([TextFields objectAtIndex:i]==currentTextField) {

num = i;

break;

}

}

if (num>0) {

prevButtonItem.enabled = YES;

}

else {

prevButtonItem.enabled = NO;

}

if (num<[TextFields count]-1) {

nextButtonItem.enabled = YES;

}

else {

nextButtonItem.enabled = NO;

}

}

[UIView beginAnimations:nil context:nil];

[UIView setAnimationDuration:0.3];

if (isInNavigationController) {

view.frame = CGRectMake(0, 201-40, 320, 44);

}

else {

view.frame = CGRectMake(0, 201, 320, 44);

}

[UIView commitAnimations];

}

//設(shè)置輸入框數(shù)組

-(void)setTextFieldsArray:(NSArray *)array{

TextFields = array;

}

//設(shè)置是否顯示上一項(xiàng)和下一項(xiàng)按鈕

-(void)setAllowShowPreAndNext:(BOOL)isShow{

allowShowPreAndNext = isShow;

}

//隱藏鍵盤和工具條

-(void)HiddenKeyBoard{

if (currentTextField!=nil) {

[currentTextField resignFirstResponder];

}

[UIView beginAnimations:nil context:nil];

[UIView setAnimationDuration:0.3];

view.frame = CGRectMake(0, 480, 320, 44);

[UIView commitAnimations];

}

//釋放

- (void)dealloc {

[view release];

[TextFields release];

[prevButtonItem release];

[nextButtonItem release];

[hiddenButtonItem release];

[currentTextField release];

[spaceButtonItem release];

[super dealloc];

}

@end

下面是使用這個(gè)類的代碼:

在UIViewController頭文件中申明,并定義,并且實(shí)現(xiàn)UITextFieldDelegate代理

比如:在keyboardtopbarViewController.h文件,我是這樣寫的

//

// keyboardtopbarViewController.h

// keyboardtopbar

//

// Created by walkman on 10-12-2.

// Copyright 2010 手機(jī)主題 http://www.shouji138.com All rights reserved.

//

#import

@class KeyBoardTopBar;

@interface keyboardtopbarViewController : UIViewController {

UITableView *tableview;

NSMutableArray *cellsTextArray;

NSMutableArray *editFieldArray;

UIButton *btnReg;

KeyBoardTopBar *keyboardbar;

CGRect rect;

}

在在UIViewController的m文件中,初始化,并添加到view中

- (void)viewDidLoad {

[super viewDidLoad];

......

//其中editFieldArray 是UITextField數(shù)組,在上面已經(jīng)初始化,并添加了N個(gè)UITextField在里面。

//具體的代碼請(qǐng)下載附件查看,這里只貼出了相關(guān)的代碼

keyboardbar = [[KeyBoardTopBar alloc]init];

[keyboardbar setAllowShowPreAndNext:YES];

[keyboardbar setIsInNavigationController:NO];

[keyboardbar setTextFieldsArray:editFieldArray];

[self.view addSubview:keyboardbar.view];

}

//這個(gè)方法是UITextFieldDelegate代理中的方法,表示輸入框開(kāi)始處于編輯狀態(tài)。

- (void)textFieldDidBeginEditing:(UITextField *)textField{

[keyboardbar ShowBar:textField]; //顯示工具條

......

}

OK了,調(diào)用起來(lái)還是很方便吧,當(dāng)然,這個(gè)類還有需要完善的地方,比如,在執(zhí)行了HiddenKeyBoard方法隱藏了鍵盤和工具條之后,如果在調(diào)用頁(yè)面時(shí)候需要再做進(jìn)一步處理,目前是無(wú)法實(shí)現(xiàn)的,等下一個(gè)版本中再加入一個(gè)Delegate類。

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看技術(shù)文章
易賢網(wǎng)手機(jī)網(wǎng)站地址:iPhone開(kāi)發(fā)中給鍵盤加個(gè)隱藏工具條
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2026上岸·考公考編培訓(xùn)報(bào)班

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
亚洲精品一区二区三| 欧美午夜大胆人体| 久久久久久一区二区| 国产精品永久入口久久久| 欧美一区二区日韩一区二区| 欧美激情一区二区三区蜜桃视频| 亚洲黄色影片| 欧美性猛交视频| 久久天天躁狠狠躁夜夜av| 在线观看三级视频欧美| 欧美日韩精品免费观看| 性欧美大战久久久久久久久| 激情综合在线| 国产亚洲免费的视频看| 欧美激情四色| 久久精品一区二区三区不卡| 亚洲精品免费电影| 国产精品乱码| 欧美激情精品久久久六区热门 | 99视频+国产日韩欧美| 国产精品盗摄一区二区三区| 久久久91精品国产一区二区精品| 亚洲久久视频| 一色屋精品视频免费看| 欧美日韩黄色一区二区| 欧美一级久久| 中文欧美日韩| 亚洲精选成人| 亚洲黑丝一区二区| 国产一区二区精品| 国产欧美91| 国产精品一区二区三区四区| 久久久久久久综合色一本| 亚洲毛片在线观看| 在线观看视频一区二区| 国产亚洲福利一区| 老司机免费视频一区二区| 欧美亚洲免费高清在线观看| 午夜一级在线看亚洲| 午夜精品免费| 久久久999精品| 另类国产ts人妖高潮视频| 久久精品一区中文字幕| 久久伊人精品天天| 蜜臀91精品一区二区三区| 欧美成年人网| 国产精品网站在线播放| 国内伊人久久久久久网站视频| 欧美三级电影一区| 国产麻豆精品视频| 亚洲国产精品va在线看黑人| 日韩午夜免费视频| 老司机免费视频一区二区| 国产精品成人午夜| 亚洲黄页视频免费观看| 欧美一区二区高清| 欧美日韩日本视频| 亚洲福利久久| 久久久久久久性| 国产精品视频网| 亚洲制服av| 欧美久久久久免费| 亚洲全部视频| 美女脱光内衣内裤视频久久影院| 国产精品欧美日韩| 一本色道综合亚洲| 欧美夫妇交换俱乐部在线观看| 国产三级欧美三级日产三级99| 夜夜精品视频| 久久在线免费| 在线观看国产成人av片| 久久精品盗摄| 国产情侣久久| 毛片基地黄久久久久久天堂| 欧美性做爰猛烈叫床潮| 一区二区精品在线| 欧美午夜精品久久久久久久| 一本色道久久综合亚洲精品高清| 欧美成人精品高清在线播放| 亚洲国产欧美一区二区三区久久| 欧美专区中文字幕| 国产一级一区二区| 另类人畜视频在线| 亚洲精品乱码久久久久久按摩观| 久久婷婷影院| 99视频+国产日韩欧美| 国产精品久久久久久久久果冻传媒 | 久久久www免费人成黑人精品 | 噜噜噜噜噜久久久久久91| 激情久久影院| 国产精品极品美女粉嫩高清在线 | 国内精品久久久久影院优| 亚洲视频一区二区| 国产精品美女视频网站| 性欧美8khd高清极品| 亚洲福利视频免费观看| 国产精品久久久久国产精品日日 | 99视频有精品| 影音先锋中文字幕一区二区| 国产精品伦一区| 欧美日韩精品一区二区三区| 久久婷婷激情| 美女国产一区| 另类av一区二区| 中文在线一区| 日韩午夜电影| 日韩午夜精品| 亚洲午夜一区二区三区| 亚洲精品一品区二品区三品区| 国色天香一区二区| 精品成人一区| 亚洲精品中文字幕在线| 亚洲精品视频一区| 一区二区三区国产| 亚洲男人影院| 久久亚洲私人国产精品va媚药| 久久国产精品久久国产精品| 老牛影视一区二区三区| 西西裸体人体做爰大胆久久久| 亚洲欧美色一区| 久久久国产视频91| 欧美伦理91i| 国产精品日韩精品欧美精品| 国产乱肥老妇国产一区二 | 国模 一区 二区 三区| 狠狠色丁香久久婷婷综合丁香| 在线观看亚洲a| 99精品免费网| 久久综合久久88| 国产精品进线69影院| 韩国欧美一区| 亚洲精品美女| 久久久久久电影| 欧美亚洲第一页| 亚洲人成网站777色婷婷| 性一交一乱一区二区洋洋av| 欧美日韩三级视频| 一区二区三区在线免费播放| 亚洲自拍都市欧美小说| 欧美日韩精品一区二区在线播放| 欧美成人精品不卡视频在线观看| 国产精品久久77777| 亚洲乱码国产乱码精品精天堂 | 国产精品久久午夜夜伦鲁鲁| 亚洲美女毛片| 欧美一区成人| 国产在线视频欧美一区二区三区| 136国产福利精品导航网址| 欧美在线免费视频| 国内精品国产成人| 久久精品成人| 国产综合色精品一区二区三区| 久久xxxx| 在线观看亚洲视频啊啊啊啊| 久久夜色撩人精品| 最新国产乱人伦偷精品免费网站| 噜噜爱69成人精品| 亚洲国产成人av| 欧美精品色综合| 午夜在线不卡| 亚洲福利av| 国产精品视频大全| 久久精品日韩欧美| 亚洲日本成人女熟在线观看| 欧美日韩亚洲一区二区| 亚洲一区黄色| 亚洲国产日本| 国产区日韩欧美| 免费的成人av| 午夜精品福利视频| 一本久道久久综合婷婷鲸鱼| 国产精品亚洲不卡a| 裸体丰满少妇做受久久99精品| 亚洲一区二区三区四区视频 | 国产精品久久久爽爽爽麻豆色哟哟| 久久久99爱| 欧美亚洲免费高清在线观看| 日韩图片一区| 亚洲国产精品t66y| 国产在线拍偷自揄拍精品| 国产精品jvid在线观看蜜臀| 欧美成年人视频| 久久男女视频| 久久精品国产亚洲一区二区三区| 亚洲一区久久| 亚洲一区二区三区午夜| 亚洲视频一区二区免费在线观看| 亚洲精品视频免费在线观看| 国产日韩欧美麻豆| 国产精品成人一区二区三区吃奶| 欧美精品一区二区三区在线看午夜| 久久野战av| 猫咪成人在线观看| 欧美国产一区二区三区激情无套| 久热综合在线亚洲精品| 六月丁香综合| 欧美丝袜第一区| 韩国精品久久久999| 亚洲欧洲另类| 亚洲一区在线直播|