5

ボーダレス ウィンドウを作成し、コンテンツ ビュー内のウィンドウの境界線/背景のすべての要素を再作成することで、カスタム (テーマ) NSWindow を作成しました。-standardWindowButton:forStyleMask: を使用して、独自の偽のタイトル バーの上にウィンドウ ウィジェット (クローズ ボックス、ズーム ボックス、最小化ボックス) を作成しました。

問題は、カスタム ウィンドウの上にシートが表示されている場合 (「変更を保存...」など)、これらのボタンがクリックされないことです。

最小化ボックスのクリックを傍受しないように NSWindow に指示する方法を知っている人はいますか? 標準の NSWindow で動作します。シートがアップしているときでも、両方をドックに送信したり、ウィンドウをズームアウトしたりできます。

4

1 に答える 1

0

シートがアップしている間にサブビューのクリックを無視する特別なコードがコンテンツ ビューにあるのではないかと思いました。しかし、-hitTest:コンテンツ ビューで呼び出され、最小化ウィジェットを返すように見えますが、ウィジェットのアクションは決してトリガーされません。

最小化ウィジェットの場合は、コンテンツ ビューを置き換えて、コンテンツ ビューの hitTest でアクションを実行するだけでよいと思いますが、それは少し醜いようです。

于 2013-01-30T17:33:56.607 に答える