0

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)


    }
}

}

Bucket
  • 449
  • 3
  • 20

0 Answers0