0

私はいくつかの iOS コーディングを行いましたが、今は Mac アプリを作成しようとしています。このリンク: NSViewController の viewDidLoad? は、viewDidLoad に相当する OSX は loadView であると言います。ビューが表示されたらすぐに初期化メソッドを呼び出したいのですが、loadView が実行されていないようです。つまり、ビュー コントローラーの次のコードです。

- (void)loadView {
    [super loadView];
    NSLog(@"Test");
    [self addPanGesture];
}

何もしないようです。NSLog は表示されず、メソッド addPanGesture は実行されません。私は本当にばかげた何かを見逃していますか、それともloadViewはもはやオーバーライドする適切な方法ではありませんか?

編集: windowDidLoad に切り替え、Ahmed Z のアドバイスに従ってスーパー コールを削除しましたが、これも機能しません。iOS のようにメソッドを追加する以外に何かする必要はありますか? また、私が最初に一番上に投稿したリンクは、Mac OSX 10.5 の時点で windowDidLoad が使用されなくなったことを「受け入れられた」回答 (最高評価のものではない) で述べているようです。

編集 2: xib ファイルを使用していることにも言及する価値があるようです。1 つのスタック オーバーフロー リンクでは、loadView は、プログラムでビューを設定するときにのみ呼び出されると述べています。

4

1 に答える 1

0

理解した。MainMenu.xib に別の NSWindow を配置し、その参照を作成することで、呼び出すことができました

[self.secondWindow display];

をクリックして 2 番目のウィンドウを開きます。

于 2013-12-08T05:44:14.870 に答える