1

私のNSPanelウィンドウは、常に他のすべてのアプリウィンドウの上にあります。これは私がそれをロードする方法です:

[NSApp beginSheet:[self window] modalForWindow:[rootDocument mainWindow] modalDelegate:self didEndSelector:nil contextInfo:nil];

setLevel:と異なるレベルタイプを使用するか、orderBack:または:を使用してレベルを変更しようとしましたorderFront。ただし、ウィンドウは常に上にあるため、これらの方法は効果がないようです。

ありがとう

4

1 に答える 1

1

nil、、Nil0、またはNULLを渡さないでくださいdidEndSelector。これまで。-sheetDidClose:returnCode:contextInfo:宣言したメソッド()にセレクターを渡します。セレクター以外のものを渡しているということは、シート容疑者を却下するためにあなたがしていることを何でもします。(パネルが却下されることはないので、パネルがトップに留まるかどうかは言われていませんが、それがここでの私の仮定です。)

この件に関するApple独自のドキュメントである「カスタムシートの使用」をご覧ください。

また、使用しているパネルのIBで「起動時に表示」フラグがオフになっていることを確認してください。

于 2013-01-31T18:19:19.643 に答える