UIResponder.CanPerform(Selector, NSObject) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
この UIResponder が指定したアクションを実行できるかどうかを判断します。 通常、コマンドを編集するためのプローブに使用されます。
[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
パラメーター
- action
- Selector
プローブされるアクションを表すセレクター。 編集操作の場合、これらのセレクターは "copy:"、"cut:"、"delete:"、"paste:"、"select:"、"selectAll:"、"toggleBoldface:"、"toggleItalics:"、"toggleUnderline:" です。
戻り値
True 指定した送信者で指定したアクションを実行できる場合。
- 属性
注釈
セレクターで指定されたアクションを オブジェクトで実行できる場合、このメソッドは true を返す必要があります。
//
// 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;
}
}