2009-11-23 6 views
7

UITextViewの "デリゲート"アウトレットをUITextViewDelegateプロトコルを実装するクラスにどのように接続しますか?UITextViewの "デリゲート"アウトレットをUITextViewDelegateプロトコルを実装するクラスにどのように接続しますか?

私は例を見つけることができないようin the docs

奇妙なことは、UITextViewの「代理人」コンセントがそのドラッグ「あなたはが、のに別のウィジェットをそれを配線することができますように、N、インターフェースブツをドロップを持っていますもちろん、私はそれをウィジェットに配線したくないので、の既存のクラスまで配線したいと思います。

答えて

3

あなたは(これは、Interface Builderでドラッグすると、あなたのために何をするかである)だけでデリゲートプロパティを設定し、「どのように私は私のテキストビューのためのコードデリゲートを使用して作成されたオブジェクトを作成しない」を意味する場合:

textView.delegate = yourDelegateObject; 

を(1)ニブのメインウィンドウに適切なコントローラをドラッグして、デリゲートのクラスにコントローラのクラスを設定します。Interface Builderでデリゲートを配線する

+0

[OK]を提供してきました、しかし、あなたにそれlike_出口_looksは、ウィジェット上にドラッグすることができる理由の任意のアイデアがありますか? コンセントをコードにドラッグすることはできません。そのように設計されたのはなぜですか? – bobobobo

+1

インターフェイスビルダの任意のオブジェクト(デリゲートになるオブジェクトなど)をインスタンス化し、そのオブジェクトをドラッグできます。 インターフェイスビルダーパレット(Objects&Controllers)の「Object」を作成して、IDインスペクタでそのクラスにクラスを設定するだけです。ペン先がロードされると、クラスがインスタンス化されますので、コード内で実行しないようにしてください。 – Rhult

+0

甘い。この方法で動作します。 – bobobobo

6

。たとえば、 "MyDelegateClass"というNSObjectサブクラスがある場合は、Objectコントローラーをドラッグし、そのクラスを "MyDelegateClass"に設定します。

(2)UITextViewの接続インスペクタで、delegateを制御してクリックし、手順(1)で作成したコントローラに接続します。

これだけです。

+0

妥当だと思われますが、アプリケーションを実行すると、textViewに触れるたびに警告なしにアプリケーションがクラッシュします。 – bobobobo

+0

ええ。 Rhultが話している 'textView.delegate = yourDelegateObject;'メソッドを使うと、アプリケーションは動作します。 – bobobobo

+1

Rhultの方法はプログラム的な方法です。それは私がIBで間違いを見つけるのが難しいので、私がほとんどの時間を使うものです。私はあなたがインターフェースビルダーでそれを設定する方法を知りたがっていると思っていましたが、これは正しい方法です。クラッシュは依然として適切に代理人が割り当てられていないことを示唆しています。テーブル、デリゲート、およびデータソースには、2つのプロトコルを実行する必要があることに注意してください。同じクラス/インスタンスで両方を実装することができますが、テーブルに 'delegate'と' datasource'アウトレットを接続する必要があります。 – TechZen

6

これはかなり古い質問ですが、私もそれに問題があり、最新のXcode 5ソリューションを共有すると考えました。

デリゲートを、ストーリーボードのビューコントローラーの下にある黒いバーの下にある白い四角の黄色の円にドラッグできます。これは全く明らかにされていませんので、私はスクリーンショット

enter image description here

+0

私が探していたもの。本当にありがとう!! –

関連する問題