自定义键盘InputAccessoryView在iOS 11中不可见

Ruc*_*chi 17 keyboard ios inputaccessoryview

我已经实现了自定义输入附件视图,它工作正常,直到iOS 10.3.1.但它在iOS 11测试版中不可见.

有没有人遇到过这个问题?

Jes*_*ess 19

你问的问题没有太多细节.但是当我为文本字段使用inputAccessoryView和自定义inputView时,我遇到了同样的问题.

并通过将自定义inputView的autoresizingMask设置为.flexibleHeight在iOS11上解决了这个问题.

yourCustomInputView.autoresizingMask = .flexibleHeight
Run Code Online (Sandbox Code Playgroud)

希望这能解决问题.如果没有,可能会提供更多信息?

这是我添加输入附件的方法,这对于更多的帮助(作为textfield的扩展):

public extension UITextField {

public func addToolbarInputAccessoryView(barButtonItems: [UIBarButtonItem],
                                         textColour: UIColor,
                                         toolbarHeight: CGFloat = 44,
                                         backgroundColour: UIColor = .white) {

    let toolbar = UIToolbar()

    toolbar.frame = CGRect(x: 0, y: 0, width: bounds.width, height: toolbarHeight)
    toolbar.items = barButtonItems
    toolbar.isTranslucent = false
    toolbar.barTintColor = backgroundColour
    toolbar.tintColor = textColour

    inputAccessoryView = toolbar
}
Run Code Online (Sandbox Code Playgroud)

}

然后在inputView(而不是inputAccessoryView)上,我使用了日期选择器 - 只需确保日期选择器的自动调整掩码设置为灵活高度.


ahb*_*bou 8

PSA:如果你使用UIToolbar作为自定义视图,它目前在iOS 11 GM中被破坏了.而不是失去你的头发如何解决它,只需将其改为UIView.你会失去模糊效果,但它会起作用.


小智 5

Beta 3刚刚问世,有些人说它解决了这个问题,但对我来说却没有.

然而,我尝试将配件视图设置为愚蠢的(100pxls高),并发现iPad上的撤消/重做/粘贴栏错误地位于我的配件栏顶部.所以我添加了以下代码来摆脱苹果吧(无论如何我的自定义选择器毫无意义)并且问题消失了

希望这有助于某人

- (void)textFieldDidBeginEditing:(UITextField*)textField  
{  
    UITextInputAssistantItem* item = [textField inputAssistantItem];  
    item.leadingBarButtonGroups = @[];  
    item.trailingBarButtonGroups = @[];  
}  
Run Code Online (Sandbox Code Playgroud)