2010-08-11 11 views
8

Olası Çoğalt: Ne MonoTouch.Dialogs gelen DialogViewController kullanıyorum
MonoTouch.Dialog: Dismissing keyboard by touching anywhere in DialogViewControlleriPhone klavyesini, DialogViewController (MonoTouch.Dialog) arka planına dokunarak kapatabilir miyim?

. Diyaloğun arka planını tıklayarak klavyeyi işten çıkarmak istiyorum.

Genellikle, görünümü büyük bir özel düğmeyle doldurma ve diğer tüm öğelerin arkasına yerleştirme tekniğini kullanırım. Ancak, bu çalışmayı DialogViewController'da yapamıyorum. Bunu LoadView'da yaptım ve diğer tüm kontrolleri dondu.

İstediğim şeyi elde etmenin nispeten basit bir yolu var mı? görünüm denetleyicisinde

cevap

7

:

public override void TouchesBegan (NSSet touches, UIEvent evt) 
    { 
     base.TouchesBegan (touches, evt); 

     myField.ResignFirstResponder(); 
    } 

Düzenleme: ne okudum, hücre subview yerine masanın kendisi için touchesBegan olayını kullanabilirsiniz seçin. Olumlu değil, işe yarıyor. İyi şanslar :)

+0

+1 daha genel sorununa düzgün bir yaklaşım olarak aslında .net :) –

+1

+1 bunu sahibi olmak için. Ancak, sorunumu MonoTouch.Dialog ile çözmez. Bu TouchesBegan olayını almak için görünmüyor UITableViewController, soyundan. – dommer

+0

-1 MonoTouch.Dialog için asıl sorusu sorulan şey için çalışmıyor. – CDeutsch

1

miguel.de.icaza bu soruya bir cevap verdi: https://stackoverflow.com/a/10864640/1134836.

Onun çözümü:

var tap = new UITapGestureRecognizer(); 
    tap.AddTarget (() =>{ 
     dvc.View.EndEditing (true); 
    }); 
    dvc.View.AddGestureRecognizer (tap); 
+0

Yinelenen bir soruya iki kez bir cevap göndermek yerine, soruyu bir kopya olarak işaretleyerek bize yardımcı olabilirsiniz. –

+0

Bunu daha önce hiç yapmadım. Sanırım bu sorunun altındaki bayrak bağlantısı mı? – valdetero

+0

Evet. İşaretleme iletişim kutusundaki "Diğer" seçeneğini kullanın. –

İlgili konular