UIResponder.CanPerform(Selector, NSObject) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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:".
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;
}
}