gpt4 book ai didi

swift - 单击 UIBarButtonItem 时显示 UIMenu

转载 作者:行者123 更新时间:2023-12-04 11:23:30 26 4
gpt4 key购买 nike

在 iOS 14 中,为 UIMenu 提供了新的 API ,现在可以附加到 UIBarButtonItem ,就像这样:

这是我的代码:

@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
}
}
但问题是,当我按下按钮时,什么也没有发生。 只有当我长按按钮时,它才会显示菜单。 我在网上看到过这段代码:
button.showsMenuAsPrimaryAction = true
但这对我没有帮助,因为 Value of type 'UIBarButtonItem' has no member 'showsMenuAsPrimaryAction'任何想法如何解决?我使用的是 Xcode 12.0 beta 4 (12A8179i)。

最佳答案

我解决了这个问题。如果这发生在你们任何人身上,你可以这样做:

  • 尝试检查按钮是否有任何其他操作。如果有,它不会将菜单显示为主要操作。
  • 如果您使用的是 Storyboard,请改用代码,例如:
    self.navigationItem.rightBarButtonItem = .init(systemItem: .add)
    // Then configure the menu of the item here, by doing:
    navigationItem.rightBarButtonItem!.menu = menu
    // Replace 'menu' with your menu object.

  • 如果您知道任何其他提示,请随时编辑此问题并添加它们。

    关于swift - 单击 UIBarButtonItem 时显示 UIMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63299837/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com