2009-11-23 7 views
7

Jak połączyć gniazdo "delegata" UITextView z klasą implementującą protokół UITextViewDelegate?Jak połączyć gniazdo "delegate" UITextView z klasą, która implementuje protokół UITextViewDelegate?

I nie wydają się znaleźć przykład in the docs

Najdziwniejsze jest „delegat” Placówce UITextView zawiera ten drag „n upuść thingy, jak można podłączyć go do kolejny widżet ale Oczywiście, nie chcę podłączać go do widżetu, chcę go podłączyć do istniejącej klasy .

Odpowiedz

3

Jeśli masz na myśli „jak mogę utworzyć obiekt, który jest tworzony z kodem delegata dla mojego widoku tekstu”, po prostu ustawić właściwość delegata (to co przeciąganie w konstruktorze Interface zrobi dla ciebie):

textView.delegate = yourDelegateObject; 
+0

Ok, ale czy ma pan jakiś pomysł, dlaczego _looks wylotowe like_ może być przeciągnięty na widget? Nie można przeciągnąć gniazdka na fragment kodu, więc dlaczego jest on zaprojektowany w ten sposób? – bobobobo

+1

Możesz utworzyć instancję dowolnego obiektu w konstruktorze interfejsu, na przykład obiekt, który będzie delegatem, i przeciągnąć obiekt. Jeśli chcesz to zrobić, po prostu utwórz "Obiekt" z palety Builder interfejsu (w obszarze Obiekty i kontrolery), a następnie ustaw klasę w swojej klasie w inspektorze tożsamości. Po załadowaniu stalówki twoja klasa zostanie utworzona, więc nie rób tego również w swoim kodzie. – Rhult

+0

Słodki. W ten sposób działa. – bobobobo

6

aby drut delegata w konstruktorze Interface:

(1) Przeciągnij odpowiedni sterownik do głównego okna stalówki i ustawić klasę sterownika do klasy swojego delegata. Na przykład, jeśli masz podklasę NSObject o nazwie "MyDelegateClass", przeciągnij kontroler Object i ustaw jego klasę na "MyDelegateClass".

(2) W inspektorze połączeń dla UITextView kliknij z wciśniętym klawiszem Control delegate i podłącz do kontrolera utworzonego w kroku (1).

To wszystko.

+0

Wydaje się być wystarczająco rozsądnym, ale teraz, gdy uruchomię aplikację, aplikacja zawiesza się bez ostrzeżenia za każdym razem, gdy dotykam tekstuView .. – bobobobo

+0

Tak. A aplikacja DZIAŁA, kiedy używam metody 'textView.delegate = yourDelegateObject;', o której mówi Rhult. – bobobobo

+1

Metoda Rhulta jest metodą programową. Jest to ten, którego używam przez większość czasu, ponieważ trudno go znaleźć w IB. Myślałem, że chcesz wiedzieć, jak skonfigurować go w narzędziu do tworzenia interfejsów i jest to właściwa metoda. Awaria sugeruje, że nadal nie przypisano prawidłowo delegata. Pamiętaj, że musisz spełnić dwa protokoły dla tabel, delegata i źródła danych. Ta sama klasa/instancja może zaimplementować oba, ale musisz podłączyć tabele typu "delegat" i "źródło danych" w IB. – TechZen

6

To dość stare pytanie, ale miałem z tym problem i doszedłem do wniosku, że udostępniłem aktualne rozwiązanie Xcode 5.

Powinieneś być w stanie przeciągnąć delegata do żółtego okręgu z białym kwadratem w środku, który znajduje się na czarnym pasku poniżej kontrolera widoku na twoim scenorysie. To nie jest wcale oczywiste, więc podajemy zrzut ekranu

enter image description here

+0

dokładnie to, czego szukałem. wielkie dzięki!! –

Powiązane problemy