1

プロジェクトで NSSavePanel に問題があったため、問題を特定するために、デフォルト ウィンドウの viewDidLoad に NSSavePanel コードのみを含むテスト プロジェクトを作成しました。

テスト プロジェクト

NSSavePanel を表示するために使用したコード:

dispatch_async(dispatch_get_main_queue()) {
    let savePanel = NSSavePanel()
    savePanel.nameFieldStringValue = "test.png"

    let result = savePanel.runModal()

    if result == NSFileHandlingPanelOKButton {
        print("You hit that OK button.")
    }
}

表示される保存パネルは次のようになります。

ここに画像の説明を入力

本当のプロジェクト

既存のアプリケーションで同じコード (画像ファイル名を除く)を使用すると、次のような NSSavePanel が得られます。

ここに画像の説明を入力

主な違い:

  • 表示されるウィンドウがアクティブにならない
  • タイトル バーは、ウィンドウの残りの部分から分離されていません
  • ボタンでもテキストフィールドでもない何かをクリックするたびに、まるでドラッグしようとしているかのように、ウィンドウが画面を数ピクセル下にジャンプします。

ここで一体何が起きているのでしょうか?明らかに、問題はコードのスニペットだけではありません。誰がそれが何であるか知っていますか?

4

0 に答える 0