0

NSViewとNSTextFieldを内部に持つNSWindowがあります。

私は現在InterfaceBuilderを使用しています。デフォルトのNSWindowに2つのコントロールをドロップし、NSViewをサブクラス化しました。NSViewからメソッドを実装して-drawRectおり、NSTextFieldのコンテンツにアクセスする必要があります。

NSView内のメソッドからNSTextFieldのインスタンスを参照するにはどうすればよいですか?

4

1 に答える 1

2

NSWindowは、ウィンドウコントローラによって制御されます(または制御される必要があります)。IBでは、ウィンドウコントローラでNSTextFieldのアウトレットを作成します。アウトレットを使用して、NSTextFieldを参照できます。

ウィンドウコントローラの.hファイル:

@property (strong) IBOutlet NSTextField *myTextField;

ウィンドウコントローラの.mファイル:

@synthesize myTextField;

そこから、コントローラーで次のことができます。

[[self myTextField] setEditable: NO];

注意すべき点は、ウィンドウ(およびそれに関するすべてのCocoaコントロール)はXIB / NIBファイルに静的に保存されるため、ウィンドウのコントロールに直接アクセスしないことです。コントロール(UI要素)へのすべてのアクセスは、コントローラー(、)を介して行われ、コントローラー(NSWindowControllerNSViewController)はXIB/NIBファイルをロードできます。

Appleは、これを行う方法に関するさまざまなサンプルをドキュメントで提供しています。

于 2012-07-07T10:11:44.690 に答える