2011-12-28 36 views
4

申し訳ありませんこれまでに質問されていたり、本当にばかな質問ですが、わかりません。私は自分のインターフェースにNSViewを持っていて、XcodeにNSViewのサブクラスを作成しました。 IDインスペクタを使用して、NSViewのクラスを新しく作成したNSViewサブクラスに設定しました。ビューは上手く描画されますが、ビュー内の文字列を変更するには、ビューを再描画する必要があります。これはsetNeedsDisplayと関係がありますが、どうすればメッセージを送信できますか?私はInterface Builderに入っているので、コード内に特定のインスタンスを持っていないので、私は何をしますか? もう一度、これがダムならば申し訳ありません。私はまだNSViewをあまり使っていません。必要な場合はさらに詳しい情報を求めてください。ありがとう!NSViewの再描画

+0

を:
は、再描画が必要なようにビューをマークするには?ラベル(AKA 'NSTextField'?) –

+0

[string drawAtPoint:point withAttributes:attributes]は、私がそれを描く方法です。私は '文字列'を変更することができたと思った後、再描画するようにビューに指示します。 – thekmc

答えて

7

あなたが持っているView Controllerサブクラスで、NSViewサブクラスのタイプのivarを追加します。プロパティを宣言し、コンセントとしてマークします。

// ViewControllerSubclass.h 
ViewType *myView; 

@property(readwrite, assign) IBOutlet ViewType *myView; 

// ViewControllerSubclass.m 
@synthesize myView; 

アウトレットがあり、IB経由でデザインしたビューに接続します。これを行うには、ビューコントローラのサブクラス(ファイルの所有者)のIBを右クリックすると、リストにコンセントが表示されます。

これを実行すると、コード内のビューにメッセージを送信できるようになりました。どのビューで、文字列を「描画」されている

[myView setNeedsDisplay:YES]; 
+0

ありがとう!私はそれをチェックします。 – thekmc

+0

それはまさに私が必要としていたものでした。助けてくれてありがとう。 – thekmc

関連する問題