iOS中只让textField使用键盘通知的实例代码
发布时间 - 2026-01-11 02:24:52 点击率:次代码:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//为textField增加键盘事件
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(addKeyboardNoti) name:UITextFieldTextDidBeginEditingNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(removeKeyboardNoti) name:UITextFieldTextDidEndEditingNotification object:nil];
}
#pragma -mark -keyboard notificatin
//键盘事件
- (void)keyboardWillShow:(NSNotification *)notification {
NSDictionary *info = [notification userInfo];
// keyboardHeight 为键盘高度
CGSize keyboardSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
[self animateViewWithKeyboardHeight:keyboardSize.height];
}
- (void)keyboardWillHide:(NSNotification *)notification {
[self animateViewWithKeyboardHeight:0.0];
}
- (void)animateViewWithKeyboardHeight:(CGFloat)keyboardHeight {
NSTimeInterval animationDuration = 0.3f;
CGFloat height = self.view.bounds.size.height;
CGFloat width = self.view.bounds.size.width;
CGFloat topSize = 0.0;
CGFloat viewH = self.view.frame.size.height-64;
CGFloat deviceHeight = [UIScreen mainScreen].bounds.size.height;
CGFloat animateH = deviceHeight - viewH - keyboardHeight;
if (animateH >= 0) {
topSize = 0;
CGRect toRect = CGRectMake(0, topSize, width, height);
self.view.frame = toRect;
} else {
topSize = animateH;
CGRect toRect = CGRectMake(0, topSize, width, height);
[UIView animateWithDuration:animationDuration animations:^{
self.view.frame = toRect;
}];
}
}
#pragma -mark -UITextFieldText Notification
//增加键盘事件
-(void)addKeyboardNoti
{
NSLog(@"------addKeyboardNoti-------");
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}
//移除键盘事件
-(void)removeKeyboardNoti
{
NSLog(@"------removeKeyboardNoti---------");
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
总结
以上所述是小编给大家介绍的iOS中只让textField使用键盘通知的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# ios
# textField键盘通知
# iOS应用开发中监听键盘事件的代码实例小结
# iOS中的UIKeyboard键盘视图使用方法小结
# iOS实现输入框跟随键盘自动上移的实例代码
# iOS中键盘 KeyBoard 上添加工具栏的方法
# iOS项目开发键盘弹出遮挡输入框问题解决方案
# h5 ios输入框和键盘的兼容性优化指南
# iOS开发第三方键盘处理实例代码
# iOS自定义键盘切换效果
# IOS数字键盘左下角添加完成按钮的实现方法
# iOS自定义身份证键盘
# 小编
# 在此
# 给大家
# 所述
# 给我留言
# 感谢大家
# 移除
# 疑问请
# 有任何
# mark
# pragma
# notificatin
# keyboard
# UITextFieldTextDidEndEditingNotification
# addKeyboardNoti
# UITextFieldTextDidBeginEditingNotification
# object
# removeKeyboardNoti
# nil
# CGSize
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
java获取注册ip实例
如何在IIS中新建站点并解决端口绑定冲突?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
Python文件异常处理策略_健壮性说明【指导】
如何在阿里云域名上完成建站全流程?
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】
Java类加载基本过程详细介绍
如何破解联通资金短缺导致的基站建设难题?
教你用AI将一段旋律扩展成一首完整的曲子
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
黑客如何利用漏洞与弱口令入侵网站服务器?
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
大连网站制作公司哪家好一点,大连买房网站哪个好?
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
java ZXing生成二维码及条码实例分享
详解Android中Activity的四大启动模式实验简述
如何打造高效商业网站?建站目的决定转化率
无锡营销型网站制作公司,无锡网选车牌流程?
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
Android使用GridView实现日历的简单功能
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
Laravel如何创建自定义Artisan命令?(代码示例)
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
EditPlus中的正则表达式 实战(4)
android nfc常用标签读取总结
如何用美橙互联一键搭建多站合一网站?
微信小程序 HTTPS报错整理常见问题及解决方案
JS去除重复并统计数量的实现方法
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
🚀拖拽式CMS建站能否实现高效与个性化并存?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
Laravel怎么使用artisan命令缓存配置和视图
Laravel如何与Pusher实现实时通信?(WebSocket示例)
微信小程序 配置文件详细介绍
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
详解MySQL数据库的安装与密码配置
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
深入理解Android中的xmlns:tools属性
如何正确下载安装西数主机建站助手?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
手机软键盘弹出时影响布局的解决方法

