热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS11-成为第一响应者而不是打开键盘

如何解决《iOS11-成为第一响应者而不是打开键盘》经验,您有什么比较好的解决方法?

我正在使用swift 2.2 for iOS app.

我有一个UIButton,其中有一个.TouchUpInside触发UITextField成为的事件first responder.

以下是输入:

    self.manualInput = BrandTextField(y: 0, parentWidth: self.view.frame.width)
    self.manualInput.returnKeyType = .Search
    self.manualInput.autocorrectiOnType= .No

    self.manualInput.hidden = true
    self.manualInput.text = ""
    self.manualInput.delegate = self
    self.manualInput.autocapitalizatiOnType= .AllCharacters
    self.manualInput.moveX(0)
    self.manualInput.changeWidth(self.view.frame.width)
    self.manualInput.layer.cornerRadius = 0

    self.backgroundView.addSubview(self.manualInput)

下面是按钮:

self.keyboardButton = ActionButton(x: Dimensions.xScaleValue(170), y: Dimensions.yScaleValue(495), onTitle: "Enter code", offTitle: "Enter code", onImage: "manual_entry", offImage: "manual_entry", imageOn: true, action: {
    self.manualInput.becomeFirstResponder()
    print("Open the input")
})
self.backgroundView.addSubview(self.keyboardButton)

我也有这两个观察者:

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.keyBoardWillShow), name: UIKeyboardDidShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.keyBoardWillHide), name: UIKeyboardWillHideNotification, object: nil)


func keyBoardWillShow(notification: NSNotification) {
    print("Keyboard will show")
    let frame = (notification.userInfo![UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue()

    self.manualInput.moveY(frame.origin.y - self.manualInput.frame.height)
    self.manualInput.hidden = false
}

func keyBoardWillHide(notification: NSNotification) {
    print("Keyboard will hide")
    self.manualInput.moveY(0)
    self.manualInput.hidden = true
}

问题是,当我按下iOS 11时的按钮时,会触发becomeFirstResponder()行,但不会显示键盘.

对我来说,奇怪的是,如果我初始化视图中的输入并使其不隐藏按钮仍然不起作用.除非我点击输入,否则关闭键盘,然后使用按钮触发.

我不知道我是否在iOS 11的设置中遗漏了一些内容,或者我是否可以不再这样做了?


推荐阅读
  • salesforce lightning零基础学习(七) 列表展示数据时两种自定义编辑页面
    上一篇Lightning内容描述的是LDS,通过LDS可以很方便的实例化一个对象的数据信息。当我们通过列表展示数据需要编辑时,我们常使用两种方式去处理编辑页面:PopUpWindo ... [详细]
  • IOSUITableView解析(一)
    UITableView的作用由于Iphone的大小有限,所以UITableView的作用是巨大的。比如QQ,微博等应用都用到了该控件。UITableVi ... [详细]
  • Spark 贝叶斯分类算法
    一、贝叶斯定理数学基础我们都知道条件概率的数学公式形式为即B发生的条件下A发生的概率等于A和B同时发生的概率除以B发生的概率。根据此公式变换,得到贝叶斯公式:即贝叶斯定律是关于随机 ... [详细]
  • 一、在androidStudio中实现tabs比较简单,新建项目就可以选择tabs模板进行创建,默认实现tabs功能:直接运行项目就可以看到效果:可以说非常简单,但是我们在实际开发 ... [详细]
  • [二分图]JZOJ 4612 游戏
    DescriptionInputOutputSampleInput44#****#****#*xxx#SampleOutput5DataConstraint分析非常眼熟࿰ ... [详细]
  • 一、vue介绍Vue.js是一套构建用户界面(UI)的渐进式JavaScript框架,是一个轻量级MVVM(model-view-viewModel&# ... [详细]
  • 这篇文章主要讲解了“GradeBook类怎么定义”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Grad ... [详细]
  • DDD在微服务架构中落地应用
    1DDDDomainDrivenDesign(领域驱动设计,DDD),不是一种架构,而是一种架构方法论,是一种拆解业务、划分业务、确定业 ... [详细]
  • 内存暴增排查分析
    一次偶然间,发现测试环境iis站点内存突然间暴增,平常都是300M,这次一下子暴增到8g于是就开始了接下来的分析发现Dictionary居然有1.78g懵逼windbg分析1.看看 ... [详细]
  • 结束jquery时间不长,写代码感觉很生,而且敢接写起来很费劲做点简单的总结。首先主要要先引入.juery.js文件第二一些js插件文件也要在jquer ... [详细]
  • 使用ffmpeg进行视频格式转换的简单例子2006-12-1623:12主要参考FFMPEG里面的apiexample.c以及output_example.c编写intmain(in ... [详细]
  • 这篇文章主要介绍“CSS浮动和定位属性介绍”,在日常操作中,相信很多人在CSS浮动和定位属性介绍问题上存在疑惑,小编查阅了各式资料,整理出简单 ... [详细]
  • 1、获取类身上的成员变量--class_copyIvarListif([badgeViewChildisKindOfClass:NSClassFromString(_UIBadg ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • 以下数据来源于TRDIR,TRDIRT,有一些对应系统的事务,有具体的T-CODE.以下我会标注一些我个人认为会常用到的.程序功能描述RSORA000O ... [详细]
author-avatar
冰凌清泽_712
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有