0

そのプロパティから親オブジェクトにアクセスすることは可能ですか?

この単純なアプリケーションには、キー押下イベントに応答するウィンドウがあります。「window」という名前のプロパティオブジェクトで、イベントが発生したときにその親オブジェクト「AppDelegate」変数「upKeyPressed」を値に設定したいと思います。どうにか可能ですか?

AppDelegate.h:

@interface MyWindow : NSWindow
@end

@interface AppDelegate : NSObject <NSApplicationDelegate>
{
    BOOL upKeyPressed;
}
@property (assign) IBOutlet MyWindow *window;
@end

AppDelegate.mファイル:

@implementation MyWindow

- (void)moveUp:(id)sender
{
    // here I want to set upKeyPressed value to YES with a kind of:
    self.parentObject->upKeyPressed = YES; // *** fantasy command
}

@end

@implementation AppDelegate
...
@end
4

1 に答える 1

0

いいえ、プロパティに関しては、親の概念はありません。あなたがしたいことは、クラスのインターフェースに追加する@property (assign) AppDelegate *parentObject;ことです(好きなように呼び出すことができます) 。MyWindow次に、実装で合成します。

-applicationDidFinishLaunchingWithOptions:それが機能するには、 addでアプリのデリゲートを指すように設定する必要もありますself.window.parentObject = self;MyWindow次に、インスタンスからいわゆる「親」オブジェクトにアクセスするには、self.parentObject.

編集:のインターフェイス定義の前に配置して、前方宣言AppDelegateする必要があります。@class AppDelegate;MyWindow

于 2012-09-27T07:00:33.137 に答える