1

レイヤー 0 で表示されているウィンドウのタイトル バーをダブルクリックしたときに発生するシステム全体の最小化機能を作成したいと考えています。

これは、再実装するのが非常に簡単な機能のようです...タイトルバーがダブルクリックされたとき、タイトルバーのみを描画します。それでおしまい。問題は、すべてのアプリケーションに実装することです。AppKit の動作をオーバーライドするには、カスタム フレームワークを作成する必要があると思いますか? たぶんNSApplication、NSWindow、またはNSViewですか?

最小化をその場で再作成するにはどうすればよいですか? フレームワークは私の唯一の選択肢ですか? フレームワークを作成した場合、サードパーティ アプリの最小化の動作を置き換えることはできますか?

最小化ボタンのデフォルトの動作をインターセプトして再作成するには、どのフレームワークをオーバーライドする必要がありますか?

最小化インプレースについて: 私は Unsanity の WindowShade に精通しています。これはまさに私が作成したいものです。unsanity は Lion バージョンに取り組んでいると思われますが、その実績は bismal です。その場で最小化は、OS 7 または 8 の時代にさかのぼるシステム機能でした。この機能を置き換えようとする他のユーティリティを試しましたが、コア システム レベルでその場で最小化を行うものはありません。する必要があるように。ユーティリティの提案を提供しないでください。私は自分自身を構築するつもりです。

最小化インプレースを再作成するアプリケーションを構築しましたが、十分ではありません。 私のアプリケーションは、ドッキングするために最小化されたときに、サードパーティのウィンドウの代わりに「プレースホルダー」ウィンドウ (私のアプリに属する​​) を配置することで、最小化を半成功的に再作成します。ウィンドウ (タイトル バーのみ) がダブルクリックされると、ウィンドウを閉じてドックから実際のウィンドウを復元します。

カスタム アプリは問題なく動作しますが、アプリケーションの切り替えが頻繁に発生します。アプリ間の切り替えがほぼシームレスになるように最適化しましたが、ウィンドウのタイトル バーをダブルクリックするたびにアプリケーションの切り替えが行われるという事実は変わりません。アプリケーションの切り替えの結果、メニュー バーが前後に切り替わり、サード パーティ製アプリのパレットは自分のアプリがフォーカスされると非表示になり、リストが続きます。

というわけで、コンセプトアプリは作ったものの、この方法では思い通りにいかない。Minimize-in-place は、アプリケーションのビルド以外の方法を使用して実装する必要があり、その方法を理解するのに助けが必要です。

その場で最小化するデモアプリ

私が知っていることは、私がする必要があると思います。提案と支援を歓迎します。 AppKit を置き換えるカスタム フレームワークを作成する必要があると思いますか? コードの非常に小さな部分をオーバーライドする必要があるだけなのに、これは圧倒的に思えますか? つまり、コアの _minimize 関数が何であれ。

サード パーティ ウィンドウのタイトル バーがダブルクリックされると、タイトル バーにクリップするだけで、システムの残りの部分を通常どおりに機能させることができます。最小化を解除すると (2 回目のダブルクリック)、クリップをフル ウィンドウに戻します。

シンプルですよね?

支援/提案をありがとう、

クリス

4

0 に答える 0