My goal is to open MenuController on Cell when i am long press on each cell need to shoe menu same like default copy paste option, here i am adding gesture for opening menu controller but fail to open everytime, alos becomeFirstResponder() always return false, thanks in advance please help.
class InComingTextCell: UITableViewCell {
@IBOutlet weak var message: UILabel!
@IBOutlet weak var time: UILabel!
@IBOutlet weak var mainView: UIView!
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
mainView.layer.cornerRadius = 8
mainView.layer.masksToBounds = true
let tapGesture = UILongPressGestureRecognizer.init(target: self, action: #selector(DetailsViewController.tapGesture(sender:)))
self.addGestureRecognizer(tapGesture)
// Configure the view for the selected state
}
// MARK:- LongPress GestureRecognizer Action Method
func tapGesture(sender: UILongPressGestureRecognizer){
let parentVC = self.getParentViewController as! DetailsViewController!
if !(parentVC?.tableView.isEditing)!{
let Cell = sender.view as! InComingTextCell
// let touch = sender.location(in: parentVC?.tableView)
//let selectedIndexPath = parentVC?.tableView.indexPathForRow(at: touch)
// let messageInfo = parentVC?.getMessageInfoFromIndex(selectedIndexPath: selectedIndexPath!)
let first = UIMenuItem.init(title: "Delete", action: #selector(DetailsViewController.deleteItmeMenuAction(sender:)))
let Second = UIMenuItem.init(title: "Forward", action: #selector(DetailsViewController.deleteItmeMenuAction(sender:)))
//becomeFirstResponder()
let menuController = UIMenuController.shared
//menuController.arrowDirection = .right
menuController.menuItems = [first,Second]
menuController.setTargetRect(Cell.frame, in: Cell.mainView)
menuController.setMenuVisible(true, animated: true)
}
}
}