0

先週、私は次の問題をいじるのにかなりの時間を費やしました。私はそれを解決しましたが、ここで答えが見つからなかったので、これに遭遇した人のために私の解決策を共有したいと思います.


問題:アプリケーションがバックグラウンド (メニューバー) で実行され、そのメインNSWindowにアプリケーションのすべての設定が含まれています。NSWindow左上の閉じるボタンをクリックして閉じます。を閉じてNSWindow再度開いた後、すべてNSControlの が視覚的に反応しませんでした。アクションはそれに応じて機能しましたが、更新されていません。

私は次のことを試しました:

  • IB の「クローズ時にリリース」のチェックを外しますNSWindow
  • NSWindowNIB からのリロード
  • NSControlすべての の強力な参照
  • sで「Become First Responder」を呼び出すNSControl
  • NSViewすべての親子関係をリロードしています
  • それぞれを接続するすべてのデリゲートをNSControl実装NSControlする
  • を無効にしてから再度有効にNSControlする

記録のために、以下に私の解決策を投稿します。

4

1 に答える 1

0

NSWindowこの問題に対する私の解決策は、次のメソッドをサブクラス化して上書きすることでした。

- (void)performClose:(id)sender{
    [self orderOut:nil];
}

- (void)close{
    [self orderOut:nil];
}

NSWindow非表示/オーダーアウトされ、表示するときに元に戻す必要があります。

于 2013-10-27T14:40:05.167 に答える