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