Я создаю набор UIBarButtonItems
, который должен отображаться над клавиатурой на iPad, используя текстовое представление inputAssistantItem
.
Представительский элемент для UIBarButtonItemGroup
- это UIBarButtonItem
с пользовательским представлением. При использовании пользовательского представления ничего не происходит, когда пользователь нажимает на представительный элемент.
Согласно документации Apple:
Нажатие на представительский элемент вызывает метод действия этого элемента. когда
вы не указываете метод действия, UIKit автоматически отображает
элементы в группе с использованием стандартного интерфейса.
Я убедился, что у UIBarButtonItem
нет действия или набора целей, но это не имеет значения - мое подменю UIBarButtonItem
не отображается при нажатии на типичный элемент.
Если я использую «обычный» UIBarButtonItem
в качестве репрезентативного элемента, все работает, как и предполагалось.
var items = [UIBarButtonItem]()
for button in self.buttons {
items.append(button)
items.append(UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil))
}
let customView = UILabel()
customView.text = "Testing"
let representativeItem = UIBarButtonItem(customView: customView)
representativeItem.target = nil
representativeItem.action = nil
textView.inputAssistantItem.trailingBarButtonGroups = [ UIBarButtonItemGroup(barButtonItems: items, representativeItem: representativeItem)]
Обратите внимание, что мой customView в приведенном выше коде является лишь примером. Мой настоящий пользовательский вид более сложный, со своими собственными подпредставлениями.
Я также пытался использовать UIButton
в качестве пользовательского представления, но это тоже не работает.