Freigeben über


UIResponder.CanPerform(Selector, NSObject) Methode

Definition

Bestimmt, ob dieser UIResponder die angegebene Aktion ausführen kann. Wird in der Regel verwendet, um die Bearbeitung von Befehlen zu testen.

[Foundation.Export("canPerformAction:withSender:")]
public virtual bool CanPerform (ObjCRuntime.Selector action, Foundation.NSObject withSender);
abstract member CanPerform : ObjCRuntime.Selector * Foundation.NSObject -> bool
override this.CanPerform : ObjCRuntime.Selector * Foundation.NSObject -> bool

Parameter

action
Selector

Der Selektor, der die Aktion darstellt, die überprüft wird. Für Bearbeitungsvorgänge sind diese Selektoren "copy:", "cut:", "delete:", "paste:", "select:", "selectAll:", "toggleBoldface:", "toggleItalics:", "toggleUnderline:".

withSender
NSObject

Das Objekt, das diese Methode aufruft.

Dieser Parameter kann null sein.

Gibt zurück

True, wenn die angegebene Aktion mit dem angegebenen Absender ausgeführt werden kann.

Attribute

Hinweise

Diese Methode sollte true zurückgeben, wenn die vom Selektor angegebene Aktion vom Objekt ausgeführt werden kann.

//
// Selectable label: a label that shows the "Copy" menu when the user
// long presses
//
public class SelectableLabel : UILabel {

public SelectableLabel (RectangleF rect) : base (rect)
{
UserInteractionEnabled = true;
var gesture = new UILongPressGestureRecognizer (LongPress);
AddGestureRecognizer (gesture);
}

void LongPress (UILongPressGestureRecognizer r)
{
var location = r.LocationInView (r.View);
var menu = UIMenuController.SharedMenuController;

r.View.BecomeFirstResponder ();

menu.SetTargetRect (r.View.Frame, r.View);
menu.SetMenuVisible (true, true);
}


public override bool CanBecomeFirstResponder { 
get { return true; } 
}

Selector copyAction = new Selector ("copy");

public override bool CanPerform (Selector action, NSObject withSender)
{
if (action == copyAction);
return true;
return false;
}

public override void Copy (NSObject sender)
{
UIPasteboard.General.String = this.Text;
}
}

Gilt für: