我从Cocoa Auto Layout机制获得以下消息:
将NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints设置为YES,以便在发生这种情况时自动调用[NSWindow visualizeConstraints:]。
但我不知道如何“将NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints设置为YES”。
如何设置?
答案 0 :(得分:55)
您可以按如下方式配置特定方案的设置......
1)从弹出菜单中选择方案,然后选择编辑方案...
2)在下面的下拉窗口中添加一个新条目到启动时传递的参数。
复制并粘贴以下行。
-NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints YES
答案 1 :(得分:40)
您也可以设置
目标C:
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints"];
Swift< 3:
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints")
Swift 3-4.2(至少):
UserDefaults.standard.set(true, forKey: "NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints")
在ApplicationDidFinishLaunching中。
请注意,这会为您自己和设置最终用户,这可能不是您想要的(不要像这样投入生产!)。您只能通过在“Debug”运行方案中设置-NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints YES参数来设置它(在单独的答案中描述)。
答案 2 :(得分:6)
以前的答案中有很多好的建议,但是对于你开发的每个应用都必须重复这些建议,即使是快速的一次性尝试也是如此。
如果您希望所有应用程序和所有用户默认打开它,您可以通过在终端中键入以下命令将其设置在默认数据库中:
defaults write -globalDomain NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints YES
您可以查看the man page主题的变体,例如,如果您希望它在范围上受到更多限制。
保持这种环境的一个缺点是,其他人的软件突然因为模糊的布局而突出显示 - 甚至有时来自Apple本身。
因此,您可能希望再次将其关闭。对此的命令非常简单:
defaults write -globalDomain NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints NO
并且要明确:当输入到终端时,该设置仅适用于相关机器,因此最终用户将无法获得该设置。这也意味着beta测试人员将看不到紫色阴影,这可能是您想要的也可能不是。
答案 3 :(得分:6)
Swift 3.0
UserDefaults.standard.set(true, forKey: "NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints")
答案 4 :(得分:1)
从命令行或Xcode的方案设置运行应用程序时,只需将其添加为参数。