在升级到 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 没有标记底层视图的任何自动布局问题。
谁能解释可能发生的事情和/或进一步调试的策略?我的经验有限,我很困惑。