我正在尝试将自定义项添加到ViewController
中的表格视图菜单中。我已经实施了所有必要的方法,但我的项目仍未显示。如果我使用默认项目,例如" copy"一切正常。我省略了performAction方法,因为我真的不知道在那里添加什么,但没有它就会出现复制动作。你能告诉我我错了吗?我已附加我的代码以添加以下自定义菜单项:
override func viewDidLoad() {
super.viewDidLoad()
let item = UIMenuItem(title: "Block and Report", action: #selector(MessageViewController.blockAndReport(_:)))
let menu = UIMenuController.sharedMenuController()
var newItems = menu.menuItems
?? [UIMenuItem]()
newItems.append(item)
menu.menuItems = newItems ...}
func tableView(tableView: UITableView, shouldShowMenuForRowAtIndexPath indexPath: NSIndexPath) -> Bool {
return true
}
func tableView(tableView: UITableView, canPerformAction action: Selector, forRowAtIndexPath indexPath: NSIndexPath, withSender sender: AnyObject?) -> Bool {
if action == #selector(MessageViewController.blockAndReport(_:)) {
return true
}
return false
}
func tableView(tableView: UITableView, performAction action: Selector, forRowAtIndexPath indexPath: NSIndexPath, withSender sender: AnyObject?) {
//I don't really know what to add here
}
func blockAndReport(sender: AnyObject?) {
print("Hello")
}
答案 0 :(得分:0)
将自定义项目添加到超级视图作为子视图
使用此行
self.tableview.addSubview(item)
答案 1 :(得分:0)
事实证明我必须设置TableViewCell类并将其连接到我的单元格,在这个类中我必须实现方法blockAndReport。现在一切正常。我的结论是,您不能对同一类的表菜单项使用方法。