关于点击UIButton弹出键盘,并且键盘的上方还需添加UITextField或者UITextView的解决方法

2023-11-05

最近在做一个项目的时候,有这样一个需求,点击UIButton弹出键盘,键盘的上方还需添加一个输入框(UITextField/UITextView,开始的想法是直接设置输入框的

inputAccessoryView,设置后发现键盘根本就没显示出来.经过无数次的修改与查找资料之后,终于大功告成。废话不多说了,先上代码。


//创建输入框视图

- (void)createCommentsView {
    if (!commentsView) {
        
        commentsView = [[UIView alloc] initWithFrame:CGRectMake(0.0, SCREEN_HEIGHT - TAB_BAR_HEIGHT - 40.0, SCREEN_WIDTH, 40.0)];
        commentsView.backgroundColor = [UIColor whiteColor];
        
        commentText = [[UITextView alloc] initWithFrame:CGRectInset(commentsView.bounds, 5.0, 5.0)];
        commentText.layer.borderColor   = [COLORRGB(212.0, 212.0, 212.0) CGColor];
        commentText.layer.borderWidth   = 1.0;
        commentText.layer.cornerRadius  = 2.0;
        commentText.layer.masksToBounds = YES;
        
        commentText.inputAccessoryView  = commentsView;
        commentText.backgroundColor     = [UIColor clearColor];
        commentText.returnKeyType       = UIReturnKeySend;
        commentText.delegate            = self;
        commentText.font                = [UIFont systemFontOfSize:15.0];
        [commentsView addSubview:commentText];
    }
    [self.view.window addSubview:commentsView];//添加到window上或者其他视图也行,只要在视图以外就好了
    [commentText becomeFirstResponder];//让textView成为第一响应者(第一次)这次键盘并未显示出来,(个人觉得这里主要是将commentsView设置为commentText的inputAccessoryView,然后再给一次焦点就能成功显示)
}

- (void)showCommentText {
    [self createCommentsView];
    
    [commentText becomeFirstResponder];//再次让textView成为第一响应者(第二次)这次键盘才成功显示
}


//button的点击事件

- (void)handleClickComment:(UIButton *) sender {
    //这里是为了防止连续点击
    sender.userInteractionEnabled = NO;
    [sender performSelector:@selector(setUserInteractionEnabled:) withObject:@YES afterDelay:1];
    [self showCommentText];
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于点击UIButton弹出键盘,并且键盘的上方还需添加UITextField或者UITextView的解决方法 的相关文章

  • 有了Auto Layout,为什么你还是害怕写UITabelView的自适应布局?

    Apple 算是最重视应用开发体验的公司了 从Xib到StoryBoard 从Auto Layout到Size Class 每一次的更新 都会给iOS应用的开发带来不小的便利 但是 对于绝对多数iOS攻城狮来说 我们依然还是很害怕写UITa
  • iOS应用添加第三方支付

    最简单明了的教程还是官方文档 以下是我给应用添加支付功能 记录下 1 微信支付 官方文档 https pay weixin qq com wiki doc api app php chapter 8 5 假设你的应用在微信开放平台已经创建
  • iOS内购 - 服务端票据验证及漏单引发的思考

    因业务需要实现了APP内购处理 但在过程中出现了部分不可控的因素 导致部分用户反映有充值不成并漏单的情况 仔细考虑了几个付费安全上的问题 凡是涉及到付费的问题都很敏感 任何一方出现损失都是不能接受的 所以在这里整理一些支付安全的要点分享一下
  • 编译错误:”Too many arguments to function call, expected 0, have 2 ”的解决

    在进行大规模工程开发的时候 或者是对原有工程结构进行调整 会出现很多编译问题 其中 Too many arguments to function call expected 0 have 2 是比较常见的一种 这个编译报错在Xcode8上比
  • ios-常见的命令行工具

    pwd 查看当前目录 cat 在命令行中查看文件 ls 查看文件 ls l 就是以列表的形式展开 touch 创建文件 open 打开文件 more 分页查看文件内容 f是下一页 b是上一页 当你命令行有很多东西你写错了的时候不想去一一删除
  • 关于点击UIButton弹出键盘,并且键盘的上方还需添加UITextField或者UITextView的解决方法

    最近在做一个项目的时候 有这样一个需求 点击UIButton弹出键盘 键盘的上方还需添加一个输入框 UITextField UITextView 开始的想法是直接设置输入框的 inputAccessoryView 设置后发现键盘根本就没显示
  • 一个奇怪的GCD内存不释放的问题

    这个问题是我的同学提出来的 原帖在http bbs csdn net topics 390933411 大概是这样 pre class objc IBAction touchToCreateThread id sender int i 10
  • autorelease(IOS开发)的原理详解

    转载出处 http tieba baidu com p 3427605546 转载出处 http blog csdn net c395565746c article details 7613814 当您向一个对象发送一个autoreleas
  • iOS开发实战之app获取通讯录(iOS 9)

    在做通讯类APP的时候 时常会访问到手机的通讯录 来获取联系人的各种属性 那么本文就来讨论一下怎么获取通讯录 注意 iOS 9 版本上可以行 其他版本未试 第一步 先导入系统库 Contacts framework 然后在 h上导入头文件
  • iOS Cookies.binarycookies(俗称63数据)存取

    iOS 系统会自动将Safari或APP中网络请求的cookie保存为文件 APP的cookie保存路径为APP的沙盒路径 var mobile Containers Data Application x x x Library Cooki
  • iOS左对齐自动换行collection样式

    前言 想必大家工作中或多或少会遇到下图样式的UI需求吧 像这种cell长度不固定 以此向右对齐排列的样式UI可以说是很常见的 实现方式 一般的实现可能主要是分一下两种 1 一种是用button依次排列实现 动态计算text宽度 记录之前一个
  • UITableView性能优化-一次面试后的反思总结

    面试的时候遇到这个问题 竟一时没有全答上来 于是Google了一下 常见的一些譬如Cell重用 设计统一Cell 缓存Cell高度 Cell数据资源缓存 这些其实平时都在用 但因为平时还是缺乏总结 回答这么个问题的时候却只想到说 重用 缓存
  • iOS开发中的网络请求

    转载自http www cocoachina com ios 20140919 9691 html 今天来说说关于iOS开发过程中的网络请求 关于网络请求的重要性我想不用多说了吧 对于移动客户端来说 网络的重要性不言而喻 常见的网络请求有同
  • Xcode5.1离线下载安装及使用iOS5模拟器进行开发调试的方法

    Xcode5 1默认不支持iOS5版本的模拟器开发调试 在OS X Mavericks 10 9 x 下默认只能支持iOS6 1及以上版本的模拟器 在OS X Mountain Lion 10 8 x 下默认只能支持iOS6 0及以上版本的
  • iOS Push详述,了解一下?

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由WeTest质量开放平台团队发表于云 社区专栏 作者 陈裕发 腾讯系统测试工程师 商业转载请联系腾讯WeTest获得授权 非商业转载请注明出处 原文链接 http wetest
  • Appstore审核被拒-[4. DESIGN: PREAMBLE]

    Appstore审核被拒原文如下 原因是设置里有一个版本信息可以响应点击事件进入一个版本详情页 苹果要求版本更新必须使用iOS版本更新内置更新机制 4 DESIGN PREAMBLE Design Preamble The version
  • iOS开发,tableView中cell的重用详解

    注意 原创版权 转载必须标明出处作者 翻版必究 iOS中tableView是一个大的模块组件 它的重要性每个iOSCoder都是了解的 但是tableView中却有个重大的坑 就是cell的重用 每个刚接触iOS开发的人都深受其海 那么经过
  • 探究Xcode New Build System对于构建速度的提升

    在Xcode9发布的时候 Apple在Build System上提供了新版本的构建系统 New Build System 具体可见WWDC2017 不过令人失望的是 该新特性的讲解很简短 短到只在一页PPT上露脸 在这短短的时间里 苹果讲述
  • 如何在 SwiftUI 中添加键盘工具栏,即使键盘不可见,该工具栏仍然保留

    我有一个聊天应用程序 想要在键盘上添加一个工具栏 类似于 SwiftUI 之前的 inputAccessoryView 我知道 iOS15 现在可以选择使用以下内容添加工具栏 来自 hackingwithswift toolbar Tool
  • UISplitViewController 仅详细信息 inputAccessoryView

    我试图在消息输入工具栏方面模仿Apple的iMessage应用程序 苹果有一个UIToolbar这是一个的输入附件视图UITextView它包含 而且还inputAccessoryView的实际视图 这样 工具栏始终存在 并且当键盘出现时

随机推荐