코코아 바인딩의 기초

MVC 패턴에서 프로그래머가 가장 많이 작성하는 코드는 크게 두 가지인데, 하나는 모델 데이터에서 발생한 변경을 뷰에 반영하는 것이고, 다른 하나는 뷰에서 사용자의 조작에 의해서 변경된 값을 모델 데이터에 반영하는 것이다. 사실 이것이 MVC에서 컨트롤러가 수행하는 일이다. GUI프로그램을 작성할 때 가장 많이 하게되는 이러한 작업을 조금 더 간단하게 (가급적이면 코드를 작성하지 않고) 구현하는 방법이 있으면 제법

코코아바인딩 :: 컨트롤러의 컨텐츠 제공방법

컨트롤러 컨텐츠를 제공하기 컨트롤러들은 (당연히도) 관리할 컨텐츠가 필요하며, 컨텐츠를 지정하는 방법에는 여러가지가 있다. 바인딩을 생성하는 코드를 통해서도 가능하며, IB를 통해서도 설정할 수 있다. 컨트롤러 컨텐츠 설정하기 NSObjectController와 그 서브클래스들은 -initWithContent:를 통해서 초기화되며, 만약 컨텐츠 바인딩을 의도한다면 nil을 넘겨도 된다. 혹은 명시적으로 setContent:를 통해서 지정해줄 수도 있다. 보통은 컨트롤러의 컨텐츠 바인딩을 통해서 연결하는 것이 일반적이다.

코코아 바인딩이 동작하는 방식

코코아 바인딩은 뷰와 데이터 모델을 양방향으로 “묶어서(binding)” 한쪽에서의 변경이 다른쪽으로 자동으로 반영되게끔 하는 것이다. 예를 들어 슬라이더를 드래그하여 값을 변경한 것을 뷰 컨트롤러의 특정한 실수값 프로퍼티에 반영하도록 하거나, 혹은 클래스외부로부터 전달받은 메시지에 의해서 프로퍼티 값이 변경된 경우, 자동으로 이 값이 뷰에 반영되도록 하는 것이다. 이러한 기능은 코코아 바인딩을 쓰지 않고도 얼마든지 구현할 수 있지만, 코코아

NSArrayController explained

배열 컨트롤러 배열 컨트롤러는 일련의 객체 집합을 다루는 바인딩 호환 객체이다. 여기서 ‘집합’은 주로 NSArray인데, 코어데이터 등에서는 NSSet을 쓰기도 한다. 배열 컨트롤러는 배열이 아니고 별도의 배열을 관리한다. 이는 배열을 자동으로 재정렬하거나, 선택된 객체들을 기억하거나 하는 배열 자체에 저장될 수 없는 몇 가지 메타 정보를 가지고 배열을 다루는 것을 도와준다. 배열 컨트롤러는 NSObjectController의 서브클래스로, 다음 메소드를

코코아 바인딩이란

코코아 바인딩 기능적인 측면에서 가장 단순하게 설명하면, 코코아 바인딩은 모델과 뷰 사이에 어떠한 글루코드 없이 값과 디스플레이되는 것을 동기화시키는 것이다. 즉 바인딩을 구성하면 값이 바뀔 대 별도의 처리 없이 자동으로 뷰가 업데이트되고, 뷰에서 변경이 일어나면 즉시 값이 변경되는 것을 코드 없이 구현한다는 것이다. 즉 작성/유지해야 하는 코드의 양을 최소화하면서 이러한 기능을 제공한다. 코코아 바인딩을 적용하기