10

最近、Objective-C の学習を開始しましたが、ちょっとした問題に遭遇しました。nib なしでカスタム ビュー コントローラーを使用しようとしているので、コードでビューが作成されます。ビュー コントローラー自体は AppDelegate で作成されます。

プログラムを実行すると、最初にデフォルトの空のウィンドウが表示されます。このウィンドウを閉じると、ビューを正しく含む 2 つ目のウィンドウがポップアップします。最初のウィンドウを表示したくないのは明らかですが、何が原因なのかわかりません。この件に関して私が見つけた唯一の情報は、まったく同じではない iOS 開発に関するものでした。

私はまた、それが何を意味するのかよくわからないこのメッセージを受け取ります: アクション orderFrontStandardAboutPanel: をクラス MainViewController のターゲットに接続できませんでした

AppDelegate:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    mainViewController = [[MainViewController alloc] initWithFrame:_window.frame];
    _window.contentView = mainViewController.view;
}

MainViewController:

- (id)initWithFrame:(NSRect)frame
{
    self = [super initWithNibName:nil bundle:nil];
    if (self)
    {
        [self setView:[[MainView alloc] initWithFrame:frame]];
        [self loadView];
    }
    return self;
}
4

1 に答える 1

25

つまり、オーバーライドしてビューloadViewに設定self.viewします。設定する前に、フレームを指定する必要があります。

のデフォルトの実装はloadView、nib をロードしようとする場所です。必要ない場合は、これをオーバーライドすることを意図しています。

于 2015-02-05T01:12:18.027 に答える