最近Objective-Cの学習を始めましたが、少し問題がありました。私はペンでなくカスタムビューコントローラを使用しようとしているので、ビューはコード内に作成されます。ビューコントローラ自体はAppDelegateで作成されます。ペン先のないカスタムNSViewControllerの作成
プログラムを実行すると、最初にデフォルトの空のウィンドウが表示されます。このウィンドウを閉じると、ビューを正しく含む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;
}
loadviewを2回呼び出しているようです。 2.明示的にloadview。 -loadViewの目的は、ビューをロードすることです。これは、View Controllerのviewプロパティにアクセスし、そのプロパティの値がnilであるときに呼び出されます。この場合、イニシャライザの自己SetViewにアクセスしているので、-loadViewが呼び出されます。再度、loadViewを特に呼び出すことになります。これは1回目が空であるか、iOSがアプリケーションを読み込んでいるのを見る理由の1つになる可能性があります。 – Srivathsa
それが原因です。ありがとう! – user2616316
あなたの問題を解決しました。それでは、私のコメントをアップヴォートできます。 – Srivathsa