Use preferredContentSize when possible