如何设置NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints?

Ben*_*Uri 43 cocoa nsuserdefaults autolayout

我从Cocoa Auto Layout机制获得以下消息:

将NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints设置为YES,以便在发生这种情况时自动调用[NSWindow visualizeConstraints:].

但我不知道如何"将NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints设置为YES".

我该如何设置?

JJD*_*JJD 57

您可以按如下方式配置特定方案的设置...

1)从弹出菜单中选择方案,然后选择编辑方案...

编辑方案...菜单

2)在下面的下拉窗口中,向"启动时传递的参数"添加一个新条目.
复制并粘贴以下行.

-NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints YES
Run Code Online (Sandbox Code Playgroud)

编辑视图


max*_*eis 42

你也可以设置

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints"];
Run Code Online (Sandbox Code Playgroud)

在ApplicationDidFinishLaunching中.

  • Swift: `NSUserDefaults.standardUserDefaults().setBool(true, forKey: "NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints")` (3认同)
  • 他们应该在日志消息中提到密钥是一个神奇的NSString而不是一个定义的常量.或者他们真的要把它定义为常数. (2认同)

Mon*_*olo 7

在之前的答案中有很多好的建议,但是对于你开发的每个应用程序都必须重复这些建议,即使是为了快速一次性尝试一个想法.

如果您希望所有应用程序和所有用户默认打开它,您可以通过在终端中键入以下命令将其设置在默认数据库中:

defaults write -globalDomain NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints YES
Run Code Online (Sandbox Code Playgroud)

您可以在手册页中查看主题的变体,例如,如果您希望它在范围上受到更多限制.

保持这种环境的一个缺点是其他人的软件突然被突出显示为模糊的布局 - 甚至有时来自Apple本身的东西.

因此,您可能希望再次关闭它.对此的命令非常简单:

defaults write -globalDomain NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints NO
Run Code Online (Sandbox Code Playgroud)

而且需要明确的是:当输入到终端时,该设置仅适用于相关机器,因此最终用户将无法获得该设置.这也意味着beta测试人员将看不到紫色阴影,这可能是您想要的,也可能不是.


Bar*_*ath 6

Swift 3.0

UserDefaults.standard.set(true, forKey: "NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraint??s")
Run Code Online (Sandbox Code Playgroud)