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

iOS11的inputAccessoryView坏了

如何解决《iOS11的inputAccessoryView坏了》经验,为你挑选了1个好方法。

我在视图控制器上为我的UIToolBar/Accessory View设置了以下设置

@IBOutlet var inputFieldView: UIToolbar!
override var canBecomeFirstResponder: Bool{
    return true
}

override var inputAccessoryView: UIView?{
    return self.inputFieldView
}

然后在我的viewDidLoad里面我有:

    let seperator = UIView(frame: CGRect(x:0 , y: 0, width: ScreenSize.width(), height: 1))
    seperator.backgroundColor = UIColor.lightBackground
    self.inputFieldView.addSubview(seperator)
    self.inputFieldView.isTranslucent = false
    self.inputFieldView.setShadowImage(UIImage(), forToolbarPosition: .any)
    self.inputFieldView.setBackgroundImage(UIImage(), forToolbarPosition: .any, barMetrics: .default)
    self.inputFieldView.removeFromSuperview()

这对于ios版本10和9非常有用.它是带有"发送"按钮的文本视图.它位于屏幕的底部,按下后,成为第一响应者,允许键盘上升并正确定位.

使用ios 11时,我甚至无法在底部点击它,所以我根本无法打字.



1> ahbou..:

这是iOS 11上的已知错误.UIToolbar子视图无法获取触摸事件,因为工具栏的某些内部视图未正确设置.

当前的解决方法是在添加子视图之前调用toolBar.layoutIfNeeded().

在你的情况下:

inputFieldView.layoutIfNeeded()

希望这将在下一个主要版本上得到修复.


推荐阅读
author-avatar
benbowujixian
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有