コントローラクラスを使用するobjective-cプロジェクトがあります。これは、IBOutlets経由でインタフェースビルダーとインターフェースします。ココアインタフェースビルダーコントローラメソッドへのアクセス
私の理解は、コントローラがオブジェクトとしてインターフェイスビルダに追加されたように、ユーザーインターフェイスを読み込んで初期化されることです。次に、コントローラのゲッターメソッドを使用してIBOutletフィールドにある値を返すことをお勧めします。
だから、私はいくつかのコードで何を意味するかを明確にするために、ここに私のコントローラインタフェース/実装だが:
@interface controller : NSObject {
@private
IBOutlet NSTextField *name;
}
-(NSString*) name;
@end
その後、私の実装では、私が持っている:
第三のクラスで-(NSString*) name
{
return [name stringValue];
}
、次のように書くことができます:
NSString blahblah = [controller name] and have the value of blahblah assume the value of whatever is in the controller's IBOutlet "name" field.
これはうまくいけばいいと思います。私はこの方法で試してやると "意味論的な問題:メソッド '+名前'が見つかりません(戻り値の型は 'id'にデフォルト)"
なぜですか?コントローラオブジェクトは実際にどのように実体化されていますか、どこに、どのようにフィールドにアクセスしますか?
をここでコードの行数よりも多くのエラーがあります - NSObjectのから直接継承するコントローラ、ポインタの誤った使用、IVAR名を不明瞭アクセサ名は、不正なMVCなどがあります。アップルの "The Objective-C Programming Language"をバックアップして読んでから、Cocoaアプリケーション開発の本/チュートリアルに進んでください。 – alexantd