一旦用户按下正确的UIMenu,我就会弹出一个UIBarButton,但问题是UIMenu没有弹出,我不知道为什么,如果你们能帮我的话,那就太酷了。
UIBarButton时,但不确定。顺便说一下!我没有使用计算属性,因为当我使用计算属性时无法编辑它们,所以我只使用了一个普通存储变量。myCode:
// MARK: - UIBarButtonItem Creation and Configuration
func configureUIButtons() {
// let toolbarButtonItems = [
// customTitleBarButtonItem,
// flexibleSpaceBarButtonItem,
// deleteBarButtonItem
// ]
let toolbarButtonItems = [
markBarButtonItem, flexibleSpaceBarButtonItem, deleteBarButtonItem
]
toolBar.setItems(toolbarButtonItems, animated: true)
}
var deleteBarButtonItem: UIBarButtonItem = UIBarButtonItem(title: "Delete", style: .plain, target: self, action: #selector(NotificationsViewController.deleteButtonItemClicked(_:)))
// var deleteBarButtonItem: UIBarButtonItem {
// let deleteBarButtonItem: UIBarButtonItem = UIBarButtonItem(title: "Delete", style: .plain, target: self, action: #selector(NotificationsViewController.deleteButtonItemClicked(_:)));
//
// return deleteBarButtonItem
//
// }
var flexibleSpaceBarButtonItem: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
// var flexibleSpaceBarButtonItem: UIBarButtonItem {
// return UIBarButtonItem(barButtonSystemItem: .flexibleSpace,
// target: nil,
// action: nil)
// }
var markBarButtonItem: UIBarButtonItem = UIBarButtonItem(title: "Mark", style: .plain, target: self, action: #selector(NotificationsViewController.markButtonItemClicked(_:)))
// MARK: - Actions
@objc
func deleteButtonItemClicked(_ barButtonItem: UIBarButtonItem) {
print("Delete Button is clicked \(barButtonItem).")
}
@objc
func markButtonItemClicked(_ barButtonItem: UIBarButtonItem ) -> UIMenu {
print("Mark is pressed")
let markMenu = UIMenu(title: "", children: [
UIAction(title: "Flag", image: UIImage(systemName: "flag")) { action in
print("Flag is pressed")
},
UIAction(title: "Mark as Unread", image: UIImage(systemName: "envelope.badge")) { action in
print("Mark as Unread is pressed")
},
])
return markMenu
}
// func menuItems() -> UIMenu {
// let markMenu = UIMenu(title: "", children: [
// UIAction(title: "Flag", image: UIImage(systemName: "flag")) { action in
// print("Flag is pressed")
// },
// UIAction(title: "Mark as Unread", image: UIImage(systemName: "envelope.badge")) { action in
// print("Mark as Unread is pressed")
// },
// ])
//
// return markMenu
// }
//发布于 2021-01-05 09:32:16
菜单没有使用正确的初始化程序。
let markMenu = UIMenu(title: "", children: [
UIAction(title: "Flag", image: UIImage(systemName: "flag")) { action in
print("Flag is pressed")
},
UIAction(title: "Mark as Unread", image: UIImage(systemName: "envelope.badge")) { action in
print("Mark as Unread is pressed")
},
])
let markBarButtonItem = UIBarButtonItem(title: "Mark", image: nil, primaryAction: nil, menu: markMenu)
let toolBar = UIToolbar(frame: CGRect(origin: .zero, size: CGSize(width: 300, height: 100)))
toolBar.setItems([markBarButtonItem], animated: true)发布于 2021-01-04 20:39:15
当您在bar按钮初始化中添加选择器时,使用" self“代替视图控制器(NotificationsViewController)的名称,或者如果您不喜欢放入self,则直接引用函数名。在方法和属性前面时,它是不需要的。
https://stackoverflow.com/questions/65567357
复制相似问题