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:」、「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;
}
}