Bagikan melalui


UIResponder.CanPerform(Selector, NSObject) Metode

Definisi

Menentukan apakah UIResponder ini dapat melakukan tindakan yang ditentukan. Biasanya digunakan untuk memeriksa perintah pengeditan.

[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

Pemilih yang mewakili tindakan yang sedang diselimuti. Untuk operasi pengeditan, pemilih ini adalah "copy:", "cut:", "delete:", "paste:", "select:", "selectAll:", "toggleBoldface:", "toggleItalics:", "toggleUnderline:".

withSender
NSObject

Objek yang memanggil metode ini.

Parameter ini dapat berupa null.

Mengembalikan

Benar jika tindakan yang ditentukan dapat dilakukan dengan pengirim yang ditentukan.

Atribut

Keterangan

Metode ini harus mengembalikan true jika tindakan yang ditentukan oleh pemilih dapat dilakukan oleh objek .

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

Berlaku untuk