2009-09-14 7 views
17

Mam widok zbudowany przez IB, jest widok tekstowy i przycisk na nim. Gdy pojawi się widok, chciałbym, aby klawiatura była już wyświetlana.Jak ustawić firstresponder?

Próbowałem ustawić pierwszy responder w didViewLoad, ale to nie zadziałało.

Mam IBOutlet, który jest podłączony do textView i powiązanego akcesor.

+0

Sprawdź ten link: http://juliuspaintings.co.uk/cgi-bin/paint_css/animatedPaint/004-TextFieldApp.pl to najprawdopodobniej ma Twoje odpowiedzi. – Dyn

Odpowiedz

45

Wygląda na to, że może przypadkowo błędnie nazwa metody didViewLoad zamiast viewDidLoad. Wszystko powinno się tam potrzeba (zakładając swoją IBOutlet jest połączony IB) jest następujący:

[textView becomeFirstResponder]; 
+4

To powinno być [textView.window makeFirstResponder: textView]; – voidref

+4

@voidref Byłbyś poprawny, gdyby pytanie dotyczyło kakao, ale nie jest, chodzi o dotyk Cocoa. Nie ma metody 'makeFirstResponder:' w 'UIWindow'. – jlehr

14

wiem, że to jest oznaczone jako cocoa-touch, ale ten jest wysoko w rankingu w Google i wpadłem w kłopoty z korzystaniem -becomeFirstResponder na OS X; nic nie zrobił. Z dokumentacji NSResponder,

Użyj metody NSWindow makeFirstResponder:, a nie tej metody, aby obiekt pierwszą odpowiedź. Nigdy nie używaj tej metody bezpośrednio.

Więc na OS X użytkowania

[[myView window] makeFirstResponder:myView];