TIP-맥OS

macOS TableView와 NSArrayController사용하여 구현하기 - #2

무한열정 2017. 4. 18. 19:44

이글은 macOS용 TableView와 NSArrayController사용하여 구현하는 방법을 설명합니다.

iOS 아이폰용 설명이 아니니 오해 없으시기 바랍니다.


#1장에 이어서 진행하겠습니다.

NSArrayController를 추가 하고 관련된 Outlet이나 Binding들을 연결해보겠습니다.


ArrayController를 검색한후 드래그해서 빈영역에 떨굽니다.


Objects항목에 ArrayController가 추가된걸 확인할수 있습니다.


ArrayController에서 사용할 모델객체를 추가해보도록 하겠습니다.

오픈클릭후 New File을 선택합니다.


모델객체를 정의할 클래스파일이 필요하므로 Cocoa Class를 선택합니다.


클래스명은 Employee로 하고 subclass of는 NSObject로 지정하여 상속받도록 합니다.

Language는 Swift로 했는지 확인하시구요.


플젝디렉토리가 기본 지정됩니다. 바로 저장하면 됩니다.


Employee.swift파일이 생성된것을 확인할수가 있습니다.


다음 코드를 Document.swift에 추가합니다.

변수를 employees로 했기때문에 바인딩시에 이 명칭으로 지정해야 하니 주의가 필요합니다.


Array Controller에서 Bindings Inspector를 선택합니다.

Bind to에 체크하고 File'sOwner로 지정해서 소유자에 바인딩되도록 합니다.

Model Key Path는 모델객체의 인스턴스 변수명인 employees로 지정하면 됩니다. 

이건 자동완성이 않되니 오타주의 해서 직접 입력해야 합니다.


버튼의 액션을 지정하겠습니다.

Add Employee를 오른클릭으로 드래그하여 Array Controller에 놓습니다.


add:메소드에 연결 시킵니다.

Array Controller는 add , remove를 기존적으로 가지고 있네요. 


동일한 요령으로 Remove 버튼도 Array Controller에 remove: 메소드에 연결합니다.


앗~ 컬럼 헤더명을 변경하지 않았네요.

해당 영역에 더블클릭하면 바로 변경이 가능합니다. 다음과 같이 수정합니다.


각 컬럼에 대해서 모델객체와 바인딩해야 하는데요.

Table View Cell에 Model Key Path를 지정합니다.

objectValue.name으로 지정하면 됩니다. 요것도 자동완성이 되지 않으니 오타 주의해서 입력합니다.

name은 Employee클래스에 정의된 이름입니다.


Raise 컬럼도 동일한 요령으로 연결 합니다.

Model Key Path에 objectValue.raise로 입력합니다.


Window UI에 대한 델리게이트도 지정해야 하는데요.

오른클릭에 드래그하여 File's Owner에 놓습니다.


delegate를 선택하면 File's Owner에 바로 연결이 됩니다.


Document.xib를 관장할 클래스를 지정해야 하는데요.

Identity Inspector를 선택하고 Class를 Document로 선택합니다.


File's Owner에 window에 대한 아웃렛 지정이 필요하구요.

오른클릭한다음 팝업이 나오면 다음과 같이 드래그하면 연결이 맺어집니다.


다음 그림과 같이 되어 있는지 확인하구요.


테이블뷰가 Array Controller와 바인딩을 해야 실질적인 데이타 입출력이 하구요.
Table View를 선택하고 Bingdings Inspector 탭을 선택합니다.

Table Content 항목에 Bind to에 체크하고 Array Controller를 지정합니다.


아차~ 가장 중요한게 빠졌는데요.

Array Controller에서 Attributes Inspector 선택하구요.

모델객체로 Employee를 사용하도록 RaiseMan.Employee를 오타 주의해서 입력합니다.

만약 Objective-C라면 RaiseMan.를 빼고 순수하게 클래스명만 입력하면 됩니다.


와~ 상당히 뭔가 할게 많은것 처럼 보이네요 ^^;;;

자 이제 Xcode상단의 플레이 버튼같은걸 눌러서 실행을 시켜봅니다.


Add Employee와 Remove버튼이 먹나요?

그럼 성공한겁니다. 축하합니다. ^^


다음 장에서는 좀더 섬세한 설정을 다루고 마무리 하도록 하겠습니다.