我正在尝试为UITextField
创建自定义键盘。这不是系统扩展;它只在我的应用程序中。
myTextField.inputView = CustomKeyboard()
CustomKeyboard
类具有子视图和自动布局约束,这些约束需要比通常的系统键盘更高的高度。这会导致错误,因为系统正在添加必需的customKeyboard.height == 216
约束。
如何告诉它不要添加此约束?它被添加到CustomKeyboard
的{{1}}中的约束数组中。
superview
答案 0 :(得分:6)
我得到了Apple开发人员的支持。我实现了这个并且它有效。这是他们所说的:
如果您的
inputView
正在使用自动布局并且具有足够的约束以便它可以确定自己的高度(在示例项目中就是这种情况),那么您需要做的就是覆盖intrinsicContentSize
在输入视图中,返回CGSize
,其高度不UIViewNoIntrinsicMetric
。例如,这样做:
override var intrinsicContentSize: CGSize {
return CGSize(width: UIViewNoIntrinsicMetric, height: 0)
}
答案 1 :(得分:1)
很遗憾,您没有显示CustomKeyboard代码。但很可能这里的问题是它不是UIInputView子类。使它成为一个UIInputView子类,现在你可以设置它的框架;原点和宽度将被忽略,但高度将被遵守。确保UIInputView的内部约束不与此高度冲突。