2011-01-21 4 views
1

iPad에서 실행 중입니다. 저는보기 컨트롤러를 모달로 보여주고 있습니다. MonoTouch.Dialog를 사용하여 텍스트 입력 필드, 버튼 등을 표시합니다. 텍스트 필드를 탭하면 키보드가 나타납니다. 텍스트 필드 바깥을 탭할 때 키보드를 닫으려고해도 사라지지 않을 것입니다. FormSheet로 제시 할 때 키보드를 없애는 것은 불가능하다고 읽습니까? 그 맞습니까?모달보기의 경우 키보드를 닫는 방법?

여기 내 코드가 있습니다. 선택기가 호출되지만 키보드는 그대로 유지됩니다. 텍스트 필드가 생성 된 dynamicall이기 때문에 나는 각각에 대해 ResignFirstResponder()를 호출하고 싶지는 않지만 뷰를 첫 번째 응답자로 만든 다음 사임하도록 할 수는 없습니다.

public override void ViewDidLoad() 
{ 
    base.ViewDidLoad (); 
UITapGestureRecognizer oTapRecognizer = new UITapGestureRecognizer (); 
oTapRecognizer.AddTarget(this, new MonoTouch.ObjCRuntime.Selector("ViewTappedSelector:")); 
this.View.AddGestureRecognizer (o); 
} 

[Export("ViewTappedSelector:")] 
public void ViewTapped (UIGestureRecognizer sender) 
{ 
    this.View.BecomeFirstResponder (); 
    this.View.ResignFirstResponder (); 
} 
+0

텍스트 필드는 어떻게 생성됩니까? 보기가 첫 번째 응답자가 될 수 있습니까? –

+0

텍스트 필드는 MT.Dialog에 의해 만들어집니다. 나는 첫번째 반응자가 될 수 있다고 생각 하나? BecomeFirstResponder() 메서드를 제공하는 한 그 함수를 호출합니다. :-) – Krumelur

답변

0

나는 FormSheet로 제시 할 때 키보드를 기각하는 것은 불가능하다는 것을 읽어?

올바른 내용입니다. 모달보기를 표시하는 동안 키보드를 닫으려면 다른 modalStyle을 사용하여 키보드를 표시하고 양식을 동일한 프레임으로 가져 오도록보기의 크기를 조정할 수 있습니다.

+0

하지만 그때는 괴롭습니다. 모달의 크기를 변경하는 것은 의도 한 것이 아니며, 모달을 표시 한 후에 만 ​​가능합니다. 그러나 나는이 행동으로 잘됩니다. 스티브가 그렇게 생각한다면, 나는 그걸로 살거야. :-) – Krumelur

+0

또 하나의 사이드 노트 : 나는 iPad 키보드가 수동으로 해제하는 버튼 (오른쪽 아래)을 가지고 있다는 것을 깨달았습니다. – Krumelur