xcode - 使用 Interface Builder 完成的 Cocoa GUI 在我的机器上布局正确,在另一台机器上布局错误

标签 xcode macos cocoa interface-builder

我正在尝试使用 xCode/Cocoa 构建一个相当简单的 GUI。我使用 Storyboard 在 Interface Builder 中设计了它并设置了相应的约束。

我在 10.11.6 (El Capitan) 上使用 xCode 7.3.1 ...部署目标设置为 10.9。在我的机器上,一切看起来都很好:

enter image description here

当我在另一台机器 10.10.5 (Yosemite) 上运行应用程序时,它看起来像这样: enter image description here

我尝试了许多不同的垂直和水平堆栈 View 组合来组织元素......以及设置一些虚拟约束。 Yosemite 机器上的结果会略有变化,但永远不会正确/相同。

更新:我发现,如果我既不使用垂直堆栈 View 也不使用水平堆栈 View ,情况会变得更好。仍然没有真正解释为什么它在两台机器上看起来不同

这怎么可能?我认为 .storyboard 文件在编译时是固定的? 您能给我的任何提示将不胜感激。

最佳答案

我能够通过从 Storyboard中删除所有堆栈 View 来解决这个问题(实际上更多的是一种解决方法)。

此外,我仔细查看了“自动首选宽度模式”警告: enter image description here

按照此处描述的步骤解决了这些问题: https://stackoverflow.com/a/27867875/649700

我仍然很困惑这怎么可能。如果堆栈 View 不完全支持或者与早期操作系统版本的行为方式不同,那么当我选择“部署目标 10.9”时至少应该有警告!更好的是,如果是这种情况,Xcode 应该完全禁用堆栈 View 。

希望这对那里的人有帮助。

关于xcode - 使用 Interface Builder 完成的 Cocoa GUI 在我的机器上布局正确,在另一台机器上布局错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38746248/

相关文章:

swift - UIView 不显示

swift - 识别整个窗口中的关键事件

xcode - 用于更改Xcode DerivedData位置的命令行选项

ios - 过滤 BehaviorRelay 数组 rxswift

iOS 自定义模板在 Xcode 5 中缺少方法

objective-c - 在 Dealloc 中删除观察者

macos - 使用 Swift 的没有 Storyboard 或 xib 文件的 OSX 应用程序

objective-c - Cocoa 绑定(bind)不反向更新

javascript - 不支持 "Content-Type"的 HTTP "audio/mpeg"Issue On Firefox

cocoa - 当它尝试运行 isKindofClass 时,我收到 sigabort