0

NSWindowsクリックすると、ステータスバー項目のすぐ下に表示される2 つ(どちらもタイトルバーなし) があります。最初の内側には、2 番目とその逆 NSWindowの反転アニメーションを開始するためのボタンがあります。反転アニメーションを作成するために使用するコードは次のとおりです。NSWindow

メソッドもあるwindowDidResignKey:ので、いずれかNSWindowがフォーカスを失うと、メソッド内の両方のウィンドウを閉じます。

だからここに問題があります:

  • ステータスバーの項目をクリックすると、最初の項目NSWindowが表示されます
  • ボタンをクリックして、2 番目のウィンドウにフリップ アニメーションを実行します(フリップ アニメーションは問題なく表示されます) 。
  • 現在のスペースから別のスペースに切り替えます (これによりwindowDidResignKey:メソッドがトリガーされます)
  • ステータスバーの項目をもう一度クリックすると、2番目の項目NSWindowが表示されます
  • 2 番目のウィンドウのボタンをクリックして、最初のウィンドウにフリップするアニメーションを実行しましたが、アニメーションが正しく表示されません。2 番目のウィンドウが消え、1 ~ 2 秒間何も表示されず、最初のウィンドウが表示されます(アニメーションが実行され、表示されないだけです)。
  • しかし、最初のスペース(最初の反転アニメーションを最初に実行した場所) に移動すると、アニメーションはエラーなしで正しく実行されます。

このエラーは、あるウィンドウが 1 つのスペースにあり、別のウィンドウが別のスペースにある (windowDidResignKey:方法のため) などによって引き起こされると思います。
これを修正する方法についてのアイデアはありますか? 「Can Join All Spaces」と「Move To Active Space」の両方に変更しようとしましNSWindowsたが、成功しませんでした。

ありがとう!

4

1 に答える 1

1

問題を解決し、ライブラリを更新しました。

反転を担当するコンテナー ウィンドウは、スペース間で移動可能である必要があり、アクティブなスペースに自動的に移動します。私は単に追加しました

[flippingContainerWindow setMovable: YES];
[flippingContainerWindow setMovableByWindowBackground: YES];
[flippingContainerWindow setCollectionBehavior: NSWindowCollectionBehaviorMoveToActiveSpace];

+ (NSWindow *)flippingContainerWindow

于 2013-01-08T14:28:10.763 に答える