申し訳ありませんこれまでに質問されていたり、本当にばかな質問ですが、わかりません。私は自分のインターフェースにNSViewを持っていて、XcodeにNSViewのサブクラスを作成しました。 IDインスペクタを使用して、NSViewのクラスを新しく作成したNSViewサブクラスに設定しました。ビューは上手く描画されますが、ビュー内の文字列を変更するには、ビューを再描画する必要があります。これはsetNeedsDisplayと関係がありますが、どうすればメッセージを送信できますか?私はInterface Builderに入っているので、コード内に特定のインスタンスを持っていないので、私は何をしますか? もう一度、これがダムならば申し訳ありません。私はまだNSViewをあまり使っていません。必要な場合はさらに詳しい情報を求めてください。ありがとう!NSViewの再描画
4
A
答えて
7
あなたが持っているView Controllerサブクラスで、NSView
サブクラスのタイプのivarを追加します。プロパティを宣言し、コンセントとしてマークします。
// ViewControllerSubclass.h
ViewType *myView;
@property(readwrite, assign) IBOutlet ViewType *myView;
// ViewControllerSubclass.m
@synthesize myView;
アウトレットがあり、IB経由でデザインしたビューに接続します。これを行うには、ビューコントローラのサブクラス(ファイルの所有者)のIBを右クリックすると、リストにコンセントが表示されます。
これを実行すると、コード内のビューにメッセージを送信できるようになりました。どのビューで、文字列を「描画」されている
[myView setNeedsDisplay:YES];
関連する問題
を:
は、再描画が必要なようにビューをマークするには?ラベル(AKA 'NSTextField'?) –
[string drawAtPoint:point withAttributes:attributes]は、私がそれを描く方法です。私は '文字列'を変更することができたと思った後、再描画するようにビューに指示します。 – thekmc