2

Mono/Monomac フレームワークを使用してネイティブ Mac ライブラリとの相互運用を行っています。通常はうまく機能しますが、画面の解像度を見つける必要があります。Monomac には、NSScreen に必要なインポートが既に定義されています。

残念ながら、NSScreen のすべてのプロパティ (Screens、MainScreen、および DeepestScreen) はすべて null を返します。私はそれらがまったく機能しなかったと信じる傾向がありましたが、MonoDevelop のソースで参照されているように見えるので、何かを見落としている可能性があります。完全を期すためのコード サンプル (例外がスローされます):

NSScreen[] shouldNotBeNull = NSScreen.Screens;
if (shouldNotBeNull == null)
    throw new Exception("That was unexpected");

私も実験しIntPtr scrRef = objc_getClass("NSScreen")ましたが、この場合scrRefもnullになります(まあ、IntPtr.Zero)。偶然か手がかりか?

編集:OSX 10.7.4でMono 2.10.9をストック

4

1 に答える 1

0

このパスで NSApplication.Init() が呼び出されていないことが判明しました。

于 2012-08-13T11:40:59.017 に答える