2013-06-21 15 views
7

olmasını istemiyorum Bu basit olmalı, ancak baş ağrısına dönüşüyor. Kullanıcının bazı metinleri ve tıklamaları arama yaptığı bir UITextField ile bir görünüm var. Bu başka bir görünüm denetleyicisi açar ve ilk görünümün kaybolmadan önce metin alanında ilk yanıtlayıcıyı istifa ediyorum. İkinci görünüm reddedildiğinde, ilk görünüm otomatik olarak metin alanını tekrar ilk yanıtlayıcı haline getirir ve bunu bastırmanın bir yolunu bulamıyorum. İkinci görünümü reddettiğimde klavyeyi nasıl açabileceğimi bilen birileri var mı?Görünüm görünür hale geldiğinde UITextField ilk yanıtlayıcı olur, ancak

Field yanıtlayıcıyı viewWillAppear'da, hiçbir etkisi olmaksızın istifa etmeye çalıştım. ViewDidAppear'da da aynı şeyi denedim, ancak klavye açılır ve sonra da garip görünen olanı derhal reddeder.

Yardımlarınız için minnettarım.

+3

Bazı kodlar gönderir misiniz? – ggrana

+0

“İlk görünümden önce metin alanında ilk yanıtlayıcıyı istifa ediyorum.” Tam olarak, metin alanının ilk yanıtlayıcıyı istifa etmesini söyler misiniz? Hangi yöntemde? –

+0

ViewWillDisappear uygulamasında ilk yanıtlayıcıyı istifa ediyorum ve ikinci görünüm görünmeden önce klavyenin işten çıkmasını görebiliyorsunuz, ancak ikinci görünümü kapattığımda, ekran kayboluyor, ardından klavye ekranın altından animasyon yapıyor. – SeanT

cevap

5

Bir düzeltme buldum, ancak çok iyi değil.

CanBecomeResponder iletisinin, viewWillAppear ve viewDidAppear'dan hemen sonra metin alanına iletildiğini gördük.

viewDidAppear'da BOES değerini YES olarak ayarladı ve bu değeri textField:shouldBeginEditing yönteminde kullandı. Temel olarak viewDidAppear henüz çağrılmadıysa, textField:shouldBeginEditing NO döndürüyordu.

+0

Bunun neden ilk etapta bir sorun olduğuna hala emin değilim, ama çözümleriniz temelde bunu düzeltmek için ne yaptım. ViewDidAppear'da bir bayrak ayarlıyorum ve onu viewDidDisappear'da unset ve metin alanının etkin olup olmadığını belirlemek için kullandım. – SeanT

İlgili konular