36

在升级到 Xcode 8.1 之前,我有一个运行良好的 macOS 应用程序。

该应用程序打开一个对话框,NSOpenPanel允许用户选择图像。当我选择图像并选择“打开”时,出现以下错误:

2016-11-03 10:23:25.589283 PA Places Data[9008:265214] [Layout] 检测到 NSTextField 缺少约束:0x6000001e3a00。无法放置,因为没有足够的约束来完全定义大小和原点。添加缺少的约束或设置 translatesAutoresizingMaskIntoConstraints=YES 并且将为您生成约束。如果此视图在 macOS 10.12 及更高版本上手动布局,您可以选择不从覆盖中调用 [super layout]。在 DETECTED_MISSING_CONSTRAINTS 上设置断点进行调试。此错误只会记录一次。

开放的对话然后冻结并且不能被解雇。

正如建议的那样,我设置了一个断点,并发现在这段代码DETECTED_MISSING_CONSTRAINTS中执行正在停止:myPopup.runModal()

func happyAlert(message: String, info: String) {
    let myPopup: NSAlert = NSAlert()
    myPopup.messageText = message
    myPopup.informativeText = info
    myPopup.alertStyle = NSAlertStyle.informational
    myPopup.addButton(withTitle: "OK")
    myPopup.runModal()
}

此警报通知用户图像已通过或未通过各种验证检查。

过去发生的事情是图像被选中,被NSOpenPanel解雇并且警报出现没有任何问题。

现在我收到有关 NSTextField 约束的错误,但我不明白为什么会在此处涉及它们,尤其是因为 Xcode 没有标记底层视图的任何自动布局问题。

谁能解释可能发生的事情和/或进一步调试的策略?我的经验有限,我很困惑。

4

1 回答 1

1

在界面构建器中检查您的视图层次结构,它可能是 textField 位于所有内容之上,而 Xcode 正在尝试为其设置约束。否则,也许可以添加一些关于故事板中正在发生的事情的屏幕截图。您是否尝试将有问题的文本字段的宽度和高度从 = 设置为 >= 设置的值?过去我遇到过这样的问题,即这种愚蠢的设置已经对类似于此的错误进行了排序。

于 2019-09-10T08:22:46.930 回答