저는 MacOSX 용 코코아를 처음 접했지만 끊임없이 인터페이스 빌더와 싸우고 있습니다.Interface Builder가 방해가되는 이유는 무엇입니까?
현재 사용자 정의 컨트롤과 뷰가있는 앱을 만들고 있습니다. 처음에는 인터페이스 빌더에서 응용 프로그램을 작성하기 시작했습니다. 처음에는 물건을 드래그하여 올바른 색상과 정확한 자동 크기 조정 규칙을 사용하여 올바른 지점으로 가져 오기가 쉽기 때문입니다. 그러나 IBPlugin을 구축하지 않고 인터페이스 빌더에서 표현할 수없는 사용자 정의 컨트롤과 뷰를 빌드 할 때가 왔습니다. 필자가 알고있는 유일한 다른 옵션은 클래스 만 변경된 곳에서 여러 개의 "사용자 정의보기"를 포함하는 인터페이스 빌더 문서를 갖는 것입니다. 갑자기 IB에 귀찮게하는 것조차도 무의미한 것처럼 보입니다. 특히 이러한 컨트롤과 뷰는 IB 문서에있는 다른 뷰와 컨트롤처럼 설정해야 할 색상과 같은 속성을 갖게됩니다. 이제는 두 개의 연결이 끊긴 장소에 시각화 속성이 설정되어있어 IB의 잠재적 인 장점 중 하나를 상쇄하는 것으로 보입니다. IB의 잠재적 인 이점은 코드를 파고 들지 않으면 서 앱의 UI를 비교적 쉽게 조정할 수 있다는 것입니다.
데이터 나 현재 선택에 따라 몇 가지 컨트롤 (예 : 색상)이 변경되는 경우도 있습니다. 이제 인터페이스 빌더에 지정된 컨트롤의 초기 기본 색상이 있지만 코드에서 데이터 기반 색상을 지정해야합니까? 다시 Interface Builder는 세계와 코드 사이에서 일부 프리젠 테이션 설정을 분할해야하는 것처럼 보입니다. 내 데이터 나 상태에 대해 알고있는 복잡한 플러그인으로이 문제를 다소 해결할 수 있다고 생각하지만 인터페이스 빌더의 경험이 "옳다"라는 지원 코드를 maintaing하는 것처럼 보입니다.
내가 자주 언급 한 내용 중 일부는 IB가 구성 요소 간의 바인딩을 얼마나 쉽게 정의 할 수 있는지 보여줍니다. "코드를 쓰지 않고도 할 수 있습니다!" 다시 말하지만, 나는 뭔가를 놓친 것일 수 있지만, 한 속성을 다른 속성에 바인딩하는 것은 내가 말할 수있는 한 줄의 코드입니다. IB의 상자에있는 몇 가지 속성을 코드의 한 줄만 쓰는 것보다 낫게 설정하고 있습니까? 그리고 프리젠 테이션 레이어의 사양에 애플리케이션 로직에 필요한 것을 넣는 것이 더 나은 이유는 무엇입니까?
개방형에서 말했듯이이 코코아 소재에 익숙하지는 않지만 Interface Builder를 사용하는 방법에 대해 매우 중요한 것이 있거나 기본으로 제공되는 사소한 데모 응용 프로그램을 주로 사용하고 있습니다. 높은 "와우"요소.
UI가 어떻게 보이는지 보겠습니다. –
아래 답변은 이미 작성한 모든 내용을 다룹니다. 따라서이 말은 단지 주석 일뿐입니다. 당신은 혼자가 아닙니다! 나는 다른 개발자와 함께 커다란 코코아 프로젝트의 마지막 단계에서 일하고있다. 우리는 IB를 사용하기 시작했지만, UI가 매우 커스터마이징 되었기 때문에 우리는 완전히 그만 두었습니다. 제 생각에 IB는 Cocoa 앱 개발의 기초를 배우고, Apple의 UI 표준을 완벽하게 준수하는 소규모 프로젝트에 적합합니다. 대부분의 맞춤식 또는 복잡한 앱은 코드에서 상황을 파악하는 것이 좋습니다. –
문제에 대한 좀 더 좋은 토론을 위해 : http://stackoverflow.com/questions/1056079/is-there-a-way-to-programmatically-determine-the-proper-sizes-for-apples-built-i –