私はシンプルなセットアップ(OSXでないOS): 2つのウィンドウAとB.ウィンドウAはスプラッシュスクリーン、ウィンドウBはメインスクリーンです。OSX、Xcode 8.2
フローはこのようになります - >アプリケーションの起動時にウィンドウA、 "新規プロジェクト"ボタンをクリックするとウィンドウBが開きます。
ウィンドウBにはボタンがあります。ポップオーバー内のビューを開くために、ボタンがIBで設定されています(セグを使用)。 Segue on button clickは期待どおりに動作します。 ボタンに接続された同じポップオーバーを開くために、プログラムによってsegue(performSegueWithIdentifier)をトリガする場所があります。これは期待どおりに動作します。
[self performSegueWithIdentifier:@"showSHImportCSVPrefsViewController" sender:nil];
しかし:私は再び、ウィンドウAと開いているウィンドウBに戻り、ウィンドウB(「新規プロジェクト」)を閉じた場合、プログラムでをトリガしたときにポップオーバーは、手動ボタンのクリックがまだ動作しても、エラーがスローされます。..私はとても混乱しています...
[NSPopover showRelativeToRect:ofView:preferredEdge:]: view has no window. You must supply a view in a window.'