iOS中键盘 KeyBoard 上添加工具栏的方法
发布时间 - 2026-01-11 02:43:48 点击率:次iOS中 键盘 KeyBoard 上怎么添加工具栏?
如图中所示 在键盘上面加一条工具栏
大致思路是提前创建好工具栏,在键盘弹出的时候将工具栏显示出来,在键盘消失的时候让工具栏隐藏
上代码
设置两个变量
UIView * _toolView; //工具栏 UITextField *textField;// 输入框 呼出键盘用
创建工具栏 输入框 添加键盘弹出 消失的通知
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
textField = [[UITextField alloc]initWithFrame:CGRectMake(10, 64, 120, 60)];
textField.placeholder = @"测试";
[self.view addSubview:textField];
//增加监听,当键盘出现或改变时收出消息
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
//增加监听,当键退出时收出消息
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification object:nil];
//初始化工具栏
_toolView = [[UIView alloc]init];
_toolView.frame = CGRectMake(0, screen_Height, screen_Width, 50);
[self.view addSubview:_toolView];
UIButton *losebtn = [UIButton buttonWithType:UIButtonTypeCustom];
losebtn.frame = CGRectMake(20, 0, 50, 50);
[losebtn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];
[losebtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[losebtn setTitle:@"收起" forState:UIControlStateNormal];
[_toolView addSubview:losebtn];
UIButton *imageBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[imageBtn setTitle:@"图片" forState:UIControlStateNormal];
imageBtn.frame = CGRectMake(screen_Width-100, 0, 50, 50);
[imageBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[imageBtn addTarget:self action:@selector(imageBtnClick) forControlEvents:UIControlEventTouchUpInside];
[_toolView addSubview:imageBtn];
UIButton *cameraBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[cameraBtn setTitle:@"相机" forState:UIControlStateNormal];
cameraBtn.frame = CGRectMake(screen_Width-50, 0, 50, 50);
[cameraBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[cameraBtn addTarget:self action:@selector(cameraBtnClick) forControlEvents:UIControlEventTouchUpInside];
[_toolView addSubview:cameraBtn];
UIButton *canclebtn = [UIButton buttonWithType:UIButtonTypeCustom];
[canclebtn setTitle:@"取消" forState:UIControlStateNormal];
canclebtn.frame = CGRectMake(screen_Width-150, 0, 50, 50);
[canclebtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[canclebtn addTarget:self action:@selector(canclebtnBtnClick) forControlEvents:UIControlEventTouchUpInside];
[_toolView addSubview:canclebtn];
}
实现键盘通知的方法
#pragma mark 当键盘出现或改变时调用
- (void)keyboardWillShow:(NSNotification *)aNotification
{
//键盘弹出时显示工具栏
//获取键盘的高度
NSDictionary *userInfo = [aNotification userInfo];
NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardRect = [aValue CGRectValue];
float keyBoardHeight = keyboardRect.size.height;
// NSLog(@"%ld",(long)keyBoardHeight);
[UIView animateWithDuration:0.1 animations:^{
_toolView.frame = CGRectMake(0, screen_Height-keyBoardHeight-50, screen_Width, 50);
}];
}
#pragma mark 当键退出时调用
- (void)keyboardWillHide:(NSNotification *)aNotification
{
//键盘消失时 隐藏工具栏
[UIView animateWithDuration:0.1 animations:^{
_toolView.frame = CGRectMake(0, screen_Height+50, screen_Width, 50);
}];
}
给工具栏上的各个按钮实现点击事件
- (void)btnClick{
[textField resignFirstResponder];
}
- (void)imageBtnClick{
}
- (void)cameraBtnClick{
}
- (void)canclebtnBtnClick{
}
PS:下面看下iOS 键盘上方增加工具栏的代码。
具体代码如下所示:
UIToolbar *keyboardDoneButtonView = [[UIToolbar alloc] init];
[keyboardDoneButtonView sizeToFit];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStyleBordered target:self
action:@selector(doneClicked:)];
[keyboardDoneButtonView setItems:[NSArray arrayWithObjects:doneButton, nil]];
txtField.inputAccessoryView = keyboardDoneButtonView;
# ios
# 键盘工具栏
# iOS应用开发中监听键盘事件的代码实例小结
# iOS中的UIKeyboard键盘视图使用方法小结
# iOS实现输入框跟随键盘自动上移的实例代码
# iOS项目开发键盘弹出遮挡输入框问题解决方案
# h5 ios输入框和键盘的兼容性优化指南
# iOS开发第三方键盘处理实例代码
# iOS自定义键盘切换效果
# IOS数字键盘左下角添加完成按钮的实现方法
# iOS中只让textField使用键盘通知的实例代码
# iOS自定义身份证键盘
# 弹出
# 所示
# 输入框
# 收出
# 图中
# 呼出
# 栏上
# selector
# addObserver
# keyboardWillShow
# defaultCenter
# placeholder
# addSubview
# NSNotificationCenter
# screen_Width
# screen_Height
# frame
# buttonWithType
# losebtn
# UIButton
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么调用外部API_Laravel Http Client客户端使用
使用spring连接及操作mongodb3.0实例
lovemo网页版地址 lovemo官网手机登录
JS经典正则表达式笔试题汇总
Laravel如何发送系统通知?(Notification渠道示例)
Laravel如何自定义错误页面(404, 500)?(代码示例)
如何快速生成ASP一键建站模板并优化安全性?
JavaScript如何实现音频处理_Web Audio API如何工作?
手机软键盘弹出时影响布局的解决方法
bootstrap日历插件datetimepicker使用方法
活动邀请函制作网站有哪些,活动邀请函文案?
LinuxCD持续部署教程_自动发布与回滚机制
JavaScript如何实现倒计时_时间函数如何精确控制
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
html如何与html链接_实现多个HTML页面互相链接【互相】
用v-html解决Vue.js渲染中html标签不被解析的问题
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
高防服务器:AI智能防御DDoS攻击与数据安全保障
如何为不同团队 ID 动态生成多个非值班状态按钮
长沙企业网站制作哪家好,长沙水业集团官方网站?
详解Android图表 MPAndroidChart折线图
香港服务器租用每月最低只需15元?
如何快速搭建高效可靠的建站解决方案?
Laravel如何实现文件上传和存储?(本地与S3配置)
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
大同网页,大同瑞慈医院官网?
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
Laravel如何使用Service Container和依赖注入?(代码示例)
网站制作免费,什么网站能看正片电影?
Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】
Laravel怎么清理缓存_Laravel optimize clear命令详解
在Oracle关闭情况下如何修改spfile的参数
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
Laravel Docker环境搭建教程_Laravel Sail使用指南
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
javascript中的try catch异常捕获机制用法分析
创业网站制作流程,创业网站可靠吗?
Laravel Session怎么存储_Laravel Session驱动配置详解
如何在搬瓦工VPS快速搭建网站?
大连 网站制作,大连天途有线官网?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
详解Android——蓝牙技术 带你实现终端间数据传输
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
如何在香港服务器上快速搭建免备案网站?
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
java中使用zxing批量生成二维码立牌
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
下一篇:教你如何修改Linux用户信息
下一篇:教你如何修改Linux用户信息

