See Also: UIMenuItem Members
UIKit.UIMenuItems are menu items that appear on the editing menu after the system menu items. UIKit.UIMenuItems are managed by a UIKit.UIMenuController and should be added to that object's UIMenuController.MenuItems property.
As the following code, taken from the "Touches_GestureRecognizer" sample demonstrates, the UIMenuItem.Action property is used to associate the UIKit.UIMenuItem with a method decorated with the Foundation.ExportAttribute attribute.
C# Example
void ShowResetMenu (UILongPressGestureRecognizer gestureRecognizer)
{
if (gestureRecognizer.State == UIGestureRecognizerState.Began) {
var menuController = UIMenuController.SharedMenuController;
var resetMenuItem = new UIMenuItem ("Reset", new Selector ("ResetImage"));
var location = gestureRecognizer.LocationInView (gestureRecognizer.View);
BecomeFirstResponder ();
menuController.MenuItems = new [] { resetMenuItem };
menuController.SetTargetRect (new RectangleF (location.X, location.Y, 0, 0), gestureRecognizer.View);
menuController.MenuVisible = true;
imageForReset = gestureRecognizer.View;
}
}
[Export("ResetImage")]
void ResetImage (UIMenuController controller)
{
var mid = new PointF ((imageForReset.Bounds.Left + imageForReset.Bounds.Right) / 2, (imageForReset.Bounds.Top + imageForReset.Bounds.Bottom) / 2);
var locationInSuperview = imageForReset.ConvertPointToView (mid, imageForReset.Superview);
imageForReset.Layer.AnchorPoint = new PointF (0.5f, 0.5f);
imageForReset.Center =locationInSuperview;
UIView.BeginAnimations (null, IntPtr.Zero);
imageForReset.Transform = CoreGraphics.CGAffineTransform.MakeIdentity ();
UIView.CommitAnimations ();
}