Hint and tip for Boxless NerdTabViewController

I spent more time on the Boxless NerdTabViewController than on any of the previous challenges. The problems I was having boiled down to having the “Translates Mask into Constraints” box checked on the top-level views in ImageViewController.xib and SpeakLineViewController.xib, resulting in unsatisfiable Auto Layout constraints. I don’t know why that wasn’t a problem when NerdTabViewController used NSBox.

One thing that helped me find the problem was setting an exception breakpoint in Xcode (which would be triggered by the Auto Layout problem) and then giving the command:

po NSApp.keyWindow!.contentView!.performSelector(Selector("_subtreeDescription"))

which dumps the view hierarchy to the console. That let me figure out which view had the suspicious NSAutoresizingMaskLayoutConstraint causing the conflict.