web-dev-qa-db-ja.com

NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraintsを設定する方法?

Cocoaの自動レイアウトメカニズムから次のメッセージが表示されます。

NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraintsをYESに設定すると、これが発生したときに-[NSWindow visualizeConstraints:]が自動的に呼び出されます。

しかし、「NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraintsをYESに設定する」方法がわかりません。

これをどのように設定しますか?

43
Yoav

設定することもできます

目標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。

これはあなた自身とandあなたのエンドユーザーの両方に設定することに注意してください。 「デバッグ」実行スキーム(別の回答で説明)で-NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints YES引数を設定することで、自分だけに設定できます。

43
maxbareis

次のように特定のスキームの設定を構成できます...

1)ポップアップメニューからスキームを選択し、スキームの編集...を選択します

Edit Scheme ... menu

2)次のスライドダウンウィンドウで、新しいエントリを起動時に渡される引数に追加します。
次の行をコピーして貼り付けます。

-NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints YES

Edit view

57
JJD

以前の回答では多くの良い提案がありましたが、アイデアを試すための迅速な1回限りの場合でも、開発するアプリごとにそれらをすべて繰り返す必要があります。

すべてのアプリとすべてのユーザーに対してデフォルトでオンにしたい場合は、ターミナルに次のコマンドを入力して、デフォルトのデータベースに設定できます。

defaults write -globalDomain NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints YES

manページ をチェックして、テーマのバリエーションを確認できます。たとえば、テーマの範囲をより制限したい場合などです。

この設定を維持することの1つの欠点は、あいまいなレイアウトのために他の人のソフトウェアが突然ハイライト表示されることです-Apple自体からの場合でも。

そのため、しばらくの間、これをオフにすることをお勧めします。そのためのコマンドは非常に簡単です。

defaults write -globalDomain NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints NO

そして明確にするために:設定は、ターミナルに入力された場合、問題のマシンにのみ適用されるため、エンドユーザーは設定を取得できません。これは、ベータテスターが紫色の影を表示しないことも意味します。

7
Monolo

Swift 3.0

UserDefaults.standard.set(true, forKey: "NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraint‌​s")
6
Barath

コマンドラインから、またはXcodeのスキーム設定でアプリを実行するときに、引数として追加するだけです。

1
Yoav