void tap(UITapGestureRecognizer gr) { CGPoint point = gr.LocationInView(this); this.selectedLine = lineAtPoint(point); // If we just tapped, remove all lines in process // so that a tap does not result in a new line linesInProcess.Clear(); if (selectedLine != null) { this.BecomeFirstResponder(); // Grab the menu controller UIMenuController menu = UIMenuController.SharedMenuController; // Create a new "Delete" UIMenuItem UIMenuItem deleteItem = new UIMenuItem("Delete", new Selector("deleteLine:")); menu.MenuItems = new UIMenuItem[] { deleteItem }; // Tell the menu item where it should come from and show it menu.SetTargetRect(new CGRect(point.X, point.Y, 2, 2), this); menu.SetMenuVisible(true, true); UIGestureRecognizer[] grs = this.GestureRecognizers; foreach (UIGestureRecognizer gestRec in grs) { if (gestRec.GetType() != new UITapGestureRecognizer().GetType()) { gestRec.Enabled = false; } } } else { // Hide the menu if no line is selected UIMenuController menu = UIMenuController.SharedMenuController; menu.SetMenuVisible(false, true); UIGestureRecognizer[] grs = this.GestureRecognizers; foreach (UIGestureRecognizer gestRec in grs) { if (gestRec.GetType() != new UITapGestureRecognizer().GetType()) { gestRec.Enabled = true; } } } this.SetNeedsDisplay(); }
void swipe(UISwipeGestureRecognizer gr) { linesInProcess.Clear(); this.BecomeFirstResponder(); // Grab the menu controller UIMenuController menu = UIMenuController.SharedMenuController; // Create buttons UIMenuItem red = new UIMenuItem("Red", new Selector("red:")); UIMenuItem green = new UIMenuItem("Green", new Selector("green:")); UIMenuItem blue = new UIMenuItem("Blue", new Selector("blue:")); menu.MenuItems = new UIMenuItem[] { red, green, blue }; // Tell the menu where it should come from and show it menu.SetTargetRect(new CGRect(0, 0, UIScreen.MainScreen.Bounds.Width, UIScreen.MainScreen.Bounds.Height), this); menu.SetMenuVisible(true, true); }