в iOS 14, есть новые API для UIMenu
, и теперь его можно прикрепить к UIBarButtonItem
, вот так: IMAGE
This это мой код:
@IBOutlet weak var addButton: UIBarButtonItem! // The button is from the storyboard.
override func viewDidAppear(_ animated: Bool) {
if #available(iOS 14.0, *) {
let simpleAction : UIAction = .init(title: "Simple", image: nil, identifier: nil, discoverabilityTitle: nil, attributes: .init(), state: .mixed, handler: { (action) in
self.addButtonActionPressed(action: .simple)
})
let advancedAction : UIAction = .init(title: "Advanced", image: nil, identifier: nil, discoverabilityTitle: nil, attributes: .init(), state: .mixed, handler: { (action) in
self.addButtonActionPressed(action: .advanced)
})
let actions = [simpleAction, advancedAction]
let menu = UIMenu(title: "", image: nil, identifier: nil, options: .displayInline, children: actions)
addButton.primaryAction = nil
addButton.menu = menu
}
}
Но проблема в том, что когда я нажимаю кнопку, ничего не происходит. Только когда я долго нажимаю кнопку, отображается меню. Я видел этот код на inte rnet:
button.showsMenuAsPrimaryAction = true
Но мне это не поможет, потому что Value of type 'UIBarButtonItem' has no member 'showsMenuAsPrimaryAction'
Есть идеи, как исправить? Я использую Xcode 12.0 beta 4 (12A8179i). Спасибо