私はMacでOpenGLビューを持っています。私はその前にNSTextFieldを置いておきたいが、それを正面に置いても、それは見えない。OpenGLビューのコントロールを作成する
非常に簡単なテストケースがあります。 XCode(私は4.0.2を使用しています)とウィンドウで新しいプロジェクトを作成します。 OpenGLビューを追加します。テキストフィールドを追加し、その半分がOpenGLビューと重なるように設定します。プログラムを実行します。フィールド全体が表示されますが、テキストを入力すると、フィールドの前後をどのように並べるかにかかわらず、テキストの半分だけが表示されます。
私はあなたの提案をとり、いくつかの他のことを試しました。 NSOpenGLCPSurfaceOrderパラメータを-1に変更したので、OpenGLイメージではなくフィールドが表示されるようになりました。私は透明になるようにウィンドウを変更しましたが、OpenGLフィールドは白色のままでした。 OpenGLビューを白くする方法がわかりません - NSViewでこれを行うための呼び出しが表示されません。 – user1240905
NSTextFieldで新しいウィンドウを作成し、上記のウィンドウの背景を透明にしました(詳細は後で説明します)。そのようなことはうまくいきましたが、マウスクリックを面白いものにしています。なぜなら、それらを1つのウィンドウで把握してから次のウィンドウに渡す必要があるからです。 Appleには、それを行う方法を示すコードがありますが、プロジェクト "FunkyOverlayWindow"はOS X 10.7に依存しており、これをOS 10.5で動作させるには必要です。私はさらに見て、それを実現するために抽出できるコードがあるかどうかを見ていきます。 0.0 \t \t \t \t \t \t \t \t \t \t \t \t \t \t緑:ところで – user1240905
は、ウィンドウの背景を透明にするためのコードは\t NSColor *のbackgroundColor = [NSColor colorWithCalibratedRedで0.0 \t \t \t \t \t \t \t \t \t \t \t \t \t \t青:0.0 \t \t \t \t \t \t \t \t \t \t \t \t \t \tアルファ:0.0]。 \t [_overlayWindow setBackgroundColor:backgroundColor]; \t [_overlayWindow setAlphaValue:.9999]; "setAlphaValue"値は.9999でなければならないことに注意してください。 1.0の場合、黒いウィンドウが表示されます。 Go figure。 – user1240905