NSView debug drawing

NSView debug drawing

NSView의 레이아웃 계층(layout hierachy)이 어떻게 구성되어있는지 비주얼라이즈해서 보고싶은경우 NSShowAllViews Preference값을 YES로 셋팅해준 후 어플리케이션을 다시 실행하면 된다.
터미널의 커맨드라인에서 다음 명령을 실행하면 해당 번들ID를 가진 앱의 설정값을 변경 가능하다.

defaults write com.your.apps.bundlename NSShowAllViews YES

nsview_debug_draw

Constraint기반의 레이아웃이 어떻게 적용되고있는지는 NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints을 이용하여 볼 수 있다.

defaults write com.your.apps.bundlename NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints YES

반대로 다시 끄고싶으면 값을 NO로 바꾸어 재실행한다.

Preference 값을 지정하는 다른 방법

앞서 소개한것 처럼 커맨드라인에서 NSUserDefaults 키값을 강제로 바꿔줄 수도있지만, Xcode상에서 이 값을 scheme에 설정하여 실행할때마다 오버라이드하여 사용하는 방법 또한 편리하다.
Xcode의 Edit Scheme 메뉴로 들어가서 ‘Arguments’ 탭의 Arguments Passed On Launch 항목에 아래 스크린샷처럼 -NSShowAllViews YES 라고 추가해 주면 해당 스킴에 의해 빌드되서 실행되는 어플리케이션의 경우 해당 값이 항상 설정되어 실행된다.

argument