Share via


UIResponder.CanPerform(Selector, NSObject) Metodo

Definizione

Determina se questo UIResponder può eseguire l'azione specificata. Usato in genere per eseguire il probe per la modifica dei comandi.

[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

Parametri

action
Selector

Selettore che rappresenta l'azione sottoposta a probe. Per le operazioni di modifica, questi selettori sono "copy:", "cut:", "delete:", "paste:", "select:", "selectAll:", "toggleBoldface:", "toggleItalics:", "toggleUnderline:".

withSender
NSObject

Oggetto che richiama questo metodo.

Questo parametro può essere null.

Restituisce

True se l'azione specificata può essere eseguita con il mittente specificato.

Attributi

Commenti

Questo metodo deve restituire true se l'azione specificata dal selettore può essere eseguita dall'oggetto .

//
// 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;
}
}

Si applica a