Compartir a través de


UIResponder.CanPerform(Selector, NSObject) Método

Definición

Determina si uiResponder puede realizar la acción especificada. Normalmente se usa para sondear los comandos de edición.

[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

Parámetros

action
Selector

Selector que representa la acción que se está sondeando. Para las operaciones de edición, estos selectores son "copy:", "cut:", "delete:", "paste:", "select:", "selectAll:", "toggleBoldface:", "toggleItalics:", "toggleUnderline:".

withSender
NSObject

Objeto que invoca este método.

Este parámetro puede ser null.

Devoluciones

True si la acción especificada se puede realizar con el remitente especificado.

Atributos

Comentarios

Este método debe devolver true si el objeto puede realizar la acción especificada por el selector.

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

Se aplica a