2010-01-03 4 views
2

저는 여기에 새로운 stackoverflow :)하지만 내 생각에, 이것은 내 질문을 물어 적절한 장소입니다. 저는 코코아 및 Objective-c를 사용하는 새로운 개발자입니다. & Mac 용 첫 번째 앱 : ToDo App을 작성하려고합니다.NSTableView 행에 두 개 이상의 개체 표시

지금은 ToDo를 저장하고 삭제할 수 있지만 이제는 CreationDate, 일부 태그 (mutablearray에 있음) 및 ToDo가 완료되었는지 여부를 추가하고 싶습니다. 난 ArrayController와 함께 일하고 있지 않다. File (Library/Application Support/AppName)에 인코딩 된 NSMutableArray를 저장하고 거기에서 읽는 중이다.

Current appearance http://img683.imageshack.us/img683/7595/bild2ss.png

제목이

가, 블루 박스 인 할일의 내용이어야한다 상태이어야한다 :이처럼 보이는 때문에

이 모두가 하나의 행에 있어야합니다 (파란색 = 실행 취소, 회색 = 완료) 자막은 날짜와 태그 여야합니다. (01203.2009 - tag1, tag2, tag3)

이제 mutable 배열에 객체를 추가하는 방법을 알려 드리겠습니다. 이 배열에이 4 개의 정보, 나는 이것을 어떻게 만드는지 모른다.

이 4 가지 정보로 초기화되는 Model이 있는데 어떻게 저장합니까? 하나의 배열에있는 정보와이 배열을 mutablearray에 저장해야합니까?

답변

6

솔루션은 실제로 반대입니다. 하나의 행당 하나의 개체가 있습니까?

여기서 모델 레이어 (MVC의 M)가 나타납니다. 각 행의 개체는 구성하는 클래스의 인스턴스이고 아이콘, 제목 및 부제는 해당 개체의 속성입니다.

그런 다음 테이블 열에을 입력하면 모델 개체가 그런 식으로 표시됩니다. 셀은 뷰 레이어의 일부이며 MVC의 V입니다.

MVC의 C는 모델과 뷰 사이에 위치합니다. 모델을 소유하고 테이블보기의 데이터 소스 (바인딩 여부에 관계 없음) 인 개체입니다. 테이블 뷰는 모델 객체를이 객체에서 가져와 셀에 공급합니다. 이 중간 객체는 컨트롤러입니다.

+0

사용자 지정 셀을 만들 필요는 없습니다. 제목과 부제에 대한 속성이 지정된 문자열로 벗어나서 상태에 NSImageCell을 사용할 수 있습니다. –

+0

사실, 3 개의 개별 속성 값을 하나의 속성 문자열에 채우는 것은 더러운 방법입니다. 특정 방식으로이를 표시하는 것은 View 작업이며 NSAttributedString을 위조하면 제어기 또는 모델 (표시에 신경 쓰지 않아야하는 코드의 두 섹션)에서 발생해야합니다. –

+0

도움을 주셔서 감사합니다. 이제 배열 컨트롤러로 작업하고 있습니다. 4 열이 있습니다.이 작업을 수행하려고합니다. – ahmet2106

1

이제 알겠습니다.

ArrayController가있는 내용의 셀은 하나뿐입니다.

각 행에 대해 - (id) init로 다른 정보를 설정하고 있습니다.

내용, 상태 및 날짜가 각각 3 개이며 각 상태별로 다른 이미지 (완료, 실행 취소, ...)가 표시됩니다.

도움 주셔서 감사합니다. 모두를 위해 베타를 끝내려고합니다.

관련 문제