UIResponder.CanPerform(Selector, NSObject) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Détermine si ce UIResponder peut effectuer l’action spécifiée. Généralement utilisé pour sonder les commandes de modification.
[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
Paramètres
- action
- Selector
Sélecteur qui représente l’action en cours de sondage. Pour les opérations de modification, ces sélecteurs sont « copy: », « cut: », « delete: », « paste: », « select: », « selectAll: », « toggleBoldface: », « toggleItalics: », « toggleUnderline: ».
Retours
True si l’action spécifiée peut être effectuée avec l’expéditeur spécifié.
- Attributs
Remarques
Cette méthode doit retourner true si l’action spécifiée par le sélecteur peut être effectuée par l’objet .
//
// 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;
}
}