iOS-自定义键盘顶部Toolbar
来源:互联网 发布:吉林大学网络教育 登录 编辑:程序博客网 时间:2024/04/29 04:51
效果图:
类似这种键盘顶端可自定义barButton的Toolbar
1.xib新建ToolBar视图
最终样式:
重要一步:
在xib中->
设置”取消”barButtonItem 的tag为 100;
设置”确定”barButtonItem 的tag为 101;
2.新建继承UIToolbar 的自定义类 KeyboardToolbar
在.m方法中,将”确定”“取消”的barButtonItem 连线至
- (IBAction)barButtonItemClick:(UIBarButtonItem *)barButtonItem
注意:连线之前需要将xib和源文件对应
方法.
自定义类详情:
.h
//// KeyboardToolbar.h// OneHelper//// Created by qiuxuewei on 16/3/9.// Copyright © 2016年 邱学伟. All rights reserved.// 自定义键盘输入框#import <UIKit/UIKit.h>@class KeyboardToolbar;/** 输入类型 */typedef enum{ /** 确定输入 */ BTN_TYPE_DONE = 0, /** 取消输入 */ BTN_TYPE_CANCEL,}BTN_TYPE;/** 协议 */@protocol KeyboardToolBarDelegate <NSObject>@optional//可选代理方法-(void)keyboardToolbar:(KeyboardToolbar *)toolbar btnClickType:(BTN_TYPE)btnType;@end@interface KeyboardToolbar : UIToolbar/** 工厂方法初始化Toolbar 从xib*/+(instancetype)keyboardToolbar;/** 代理方法 */@property (nonatomic, weak) id<KeyboardToolBarDelegate> keyboardDelegate;@end
.m
//// KeyboardToolbar.m// OneHelper//// Created by qiuxuewei on 16/3/9.// Copyright © 2016年 邱学伟. All rights reserved.//#import "KeyboardToolbar.h"@interface KeyboardToolbar ()@end@implementation KeyboardToolbar//初始化+(instancetype)keyboardToolbar{ return [[[NSBundle mainBundle] loadNibNamed:@"keyboardToolbar" owner:nil options:nil] lastObject];}- (IBAction)barButtonItemClick:(UIBarButtonItem *)barButtonItem { BTN_TYPE btnType = BTN_TYPE_DONE; //默认确定 //如果没有实现代理 if ([self.keyboardDelegate respondsToSelector:@selector(keyboardToolbar:btnClickType:)]) { if (barButtonItem.tag == 100) { //如果点击的tag为100的"取消" btnType = BTN_TYPE_CANCEL; } //实现代理方法 [self.keyboardDelegate keyboardToolbar:self btnClickType:btnType]; }}@end
此时,自定义Toolbar 工作完成.
真正用到的时候当然是UITextField开始输入键盘弹出的时候 ->
1.导入自定义Toolbar并且 遵守协议
#import "KeyboardToolbar.h"@interface ExchangeRateController ()<KeyboardToolBarDelegate>/** 初始化键盘上面Toolbar */@property (nonatomic, strong) KeyboardToolbar *kbToolbar;@end@implementation ExchangeRateController#pragma mark - 懒加载键盘顶部Toolbar//键盘上选择框-(KeyboardToolbar *)kbToolbar{ if (_kbToolbar == nil) { _kbToolbar = [KeyboardToolbar keyboardToolbar]; _kbToolbar.keyboardDelegate = self; UIBarButtonItem *item1 = (UIBarButtonItem *)_kbToolbar.items[0]; item1.title = @"取消"; UIBarButtonItem *item2 = (UIBarButtonItem *)_kbToolbar.items[2]; item2.title = @"确定"; } return _kbToolbar;}//在初始化UITextfield的时候,//创建 UITextField 设置setInputAccessoryView 为自定义Toolbar-(void)creatTextField{ UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 64, [UIScreen mainScreen].bounds.size.width - 20, 44)]; [textField setKeyboardType:UIKeyboardTypeDefault]; [textField setInputAccessoryView:self.kbToolbar]; [self.view addSubview:textField];}//实现代理方法,监听点击事件#pragma mark - keyboardDelegate-(void)keyboardToolbar:(KeyboardToolbar *)toolbar btnClickType:(BTN_TYPE)btnType{ NSLog(@"点击Toolbar"); if (btnType == BTN_TYPE_CANCEL) { NSLog(@"取消"); }else{ NSLog(@"确定"); }}
0 0
- iOS-自定义键盘顶部Toolbar
- iOS自定义工具栏(Toolbar)
- iOS开发 键盘添加工具条(toolbar)
- ios toolbar随键盘一起上移
- iOS给键盘添加全局工具条toolbar用于关闭键盘
- iOS - 键盘自定义:
- iOS 自定义键盘
- IOS自定义键盘
- ios自定义键盘高度
- iOS 自定义键盘
- iOS自定义键盘
- iOS 添加自定义键盘
- iOS开发-自定义键盘
- iOS-自定义键盘选择器
- iOS自定义键盘
- iOS 自定义输入键盘
- iOS自定义键盘
- iOS-OC-自定义键盘
- python 异常
- iOS多线程开发
- 用几行代码做一个十分简单的无限循环播放的走马灯例子
- Android 查看手机内存使用情况(/proc/meminfo)
- 文章标题
- iOS-自定义键盘顶部Toolbar
- java.lang.IllegalStateException: Can not perform this action after onSaveIns
- nginx thinkphp本地部署后上传到服务器读缓存时错误
- 行人检测实现和相关资料
- 欠一篇博客
- Nginx支持php配置
- android中include使用提高复用性(自定义title为例(附加取消title的方法))
- websocket-1
- parseSdkContent failed Could not initialize class android.graphics