作者:benbowujixian | 来源:互联网 | 2023-01-17 10:48
我在视图控制器上为我的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()
希望这将在下一个主要版本上得到修复.