이글은 macOS용 TableView와 NSArrayController사용하여 구현하는 방법을 설명합니다.
iOS 아이폰용 설명이 아니니 오해 없으시기 바랍니다.
#2장에 이어서 진행하겠습니다.
남은 상세한 부분을 설정하는것에 대하여 진행해 보도록 하겠습니다.
이게 특별히 코딩이 들어가지 않는게 Xcode를 통한 Array Controller 설정이네요. ^^
우선 소트기능이 되도록 설정할 건데요.
Name이나 Raise 헤더부분을 클릭하면 소트가 되게 됩니다.
Table View를 설정하고
Bindings Inspector탭에서
Selection Indexes를 펼쳐서 Bind to에 체크하고 Array Controller로 선택되어 있는지 확인합니다.
Controller Key항목에 selectionIndexes를 오타가 나지 않도록 주의하여 입력합니다.
Sort Descriptors를 펼쳐서 Bind to에 체크하고 Array Controller로 선택되어 있는지 확인합니다.
Controller Key항목에 sortDescriptors를 오타가 나지 않도록 주의하여 입력합니다.
Table View 하위에 컬럼항목에 설정을 추가해야 하는데요.
Name항목을 선택하고 Attributes Inspector탭에서
Sort Key에는 name
Selector에는 caseInsensitiveCompare:를 입력합니다.
동일한 요령으로 Raise항목에도
Sort Key에는 raise
Selector에는 compare:를 입력합니다.
실행을 시켜 봅니다.
컬럼헤더 부분을 클릭하면 위아래 화살표가 나와서 동작되는게 확인이 됩니다. ^^
근데 Raise는 %로 나와야 하는데 그게 좀 아쉽네요.
Number Formatter를 검색하면 목록에 나오게 되고
드래드하여 Raise컬럼에다 가져다 놓습니다.
Table View Cell 항목 하위에 Number Formatter가 추가 되는데
Attributes Inspector탭을 선택한다음
Style을 Pecent를 선택합니다.
다시 실행을 시켜보면 %로 출력이 됩니다.
여기서 약간 아쉬운게 있는데 Remove를 선택하여 모든 행이 삭제되면
Remove버튼을 누르는 의미가 없으므로(목록이 없으므로) 비활성화 되면 좋을겁니다.
그럼 보완을 해볼까요.
Remove버튼을 선택하고
Bindings Inspector탭을 선택한다음
Bind to 체크 확인하고 Array Controller선택도 확인합니다.
Controller Key에 canRemove를 입력합니다.
다시 실행시켜 보겠습니다.
더이상 삭제할게 없으면 Remove버튼이 비활성화 되네요.
이제 완벽해 졌습니다. ^^
macOS가 iOS개발하고는 비슷하지만 약간 다른걸 느낄수가 있습니다.
꽤 긴분량인데 여기까지 따라오느라 수고하셨습니다.
'TIP-맥OS' 카테고리의 다른 글
macOS NSUndoManager 세련된 방법으로 실행취소(되돌리기) 구현 (0) | 2017.05.07 |
---|---|
macOS TableView와 NSArrayController에서 Formatters and Validation (0) | 2017.04.22 |
macOS TableView와 NSArrayController사용하여 구현하기 - #2 (0) | 2017.04.18 |
macOS TableView와 NSArrayController사용하여 구현하기 - #1 (0) | 2017.04.16 |
macOS에서 스타크래프트1 브루드워 실행하기 (0) | 2017.04.16 |