UIBarButtonItemGroup.represenativeItem с настраиваемым представлением - PullRequest
0 голосов
/ 01 июля 2019

Я создаю набор 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 в качестве пользовательского представления, но это тоже не работает.

...