2013-01-14 6 views
1

코드에서 제스처 인식기를 만들려고하는데 작동하지 않으면 드래그를 수행 할 때 unrecognised selector sent to instance이됩니다. LblDrag은 IB의 UILabel입니다. 인식 자에 대한 생성자 매개 변수로 Action을 사용하면 잘 작동하지만 선택기 방식을 사용할 수 있기를 원합니다. 내가 인식기는 어느 작품에 추가되는보기를 변경하는 것을 시도했다코드에서 제스처 인식기 만들기

public override void ViewDidLoad() 
    { 
     base.ViewDidLoad(); 

     // Perform any additional setup after loading the view, typically from a nib. 
     var selector = new MonoTouch.ObjCRuntime.Selector("DragMe"); 
     var recognizer = new UIPanGestureRecognizer(LblDrag,selector); 
     View.AddGestureRecognizer(recognizer); 
    } 

    [Export("DragMe")] 
    protected void DragMe() 
    { 
     Console.WriteLine ("Drag"); 
    } 

: 여기

내가 가진 것입니다.

답변

2

당연히 잘못된 대상을 추가하고 있습니다. UILabelDragMe 선택기에 응답하지 않습니다 (왜 그렇다고 생각하십니까?). 실제로 콜백 메소드를 구현하는 제스처 인식기의 대상으로 객체를 추가해야합니다.

var recognizer = new UIPanGestureRecognizer(this, selector); 
+0

감사합니다. 그리고 너무 의미가 있습니다! :) – Jeff

+0

@Jeff 문제 없습니다. 그것은 단지 논리적 인 추측이었습니다. (C#은 잘 모르지만 도움이 되었기 때문에 기쁩니다.) –

+0

C#이나 objc가 될 수있는 모든 문서를 찾을 수 없었기 때문에 기꺼이 도와 줬습니다. :) – Jeff