코코아에서 사용자 선택에 대한 축소판 기반보기를 어떻게 구현할 수 있습니까?
-
13-09-2019 - |
문제
나는 내가 생각한 것이 매우 단순한 요구라고 생각했지만 그것을 구현하는 방법을 잘 모르겠습니다.
내 인터페이스의 다양한 지점에서, 사용자는 오히려 시각적 인 것을 선택하도록 요청받습니다 (페이지 또는 색상 옵션을위한 레이아웃을 선택하는 것과 같이)이 선택은 사전 정의 된 옵션 세트로 만들어집니다. 일반적으로 nspopupbutton 또는 nstableview를 사용하지만 사용자가 각 선택 옵션의 축소판을 볼 수 있기를 바랍니다. 이 썸네일은 적어도 100x100 픽셀의 괜찮은 크기가되어야합니다. 각 썸네일에는 텍스트 레이블도 동반해야합니다. 한 번에 하나의 선택 만 허용됩니다.
Apple은 iWeb에서 이와 같은 것을 구현합니다.
iweb http://img187.imageshack.us/img187/5744/iweb.jpg
물론, 당신은 작은 아이콘으로 이와 같은 것을 보는 데 익숙합니다.
나는 nscollectionView가 시작하기위한 장소라고 생각하지만, 훨씬 더 복잡한 시나리오에서 사용 된 것을 본 적이 있습니다 (예 : 디렉토리의 내용 표시, 드래그 앤 드롭 등). 내가 찾은 코드는 다소 복잡합니다.
이보기를 정적, 사전 정의 된 데이터로 채우고 간단한 선택 만 허용하는 간단한 솔루션이 있습니까? 다시 말해, 팝업 버튼의 기능이 있지만 다른 사용자 인터페이스의 기능을 찾고 있습니다.
업데이트 : 솔루션
제안 된대로 ikimagebrowser를 사용했습니다. 이 튜토리얼 매우 도움이되었습니다. IB에서 : 방금 인터페이스에 ikimagebrowser를 만들어 스크롤보기로 싸서 브라우저 개체의 데이터 소스로 만들었습니다. 코드 : 튜토리얼에 설명 된 것처럼 내 컨트롤러에서 데이터 소스 프로토콜을 구현했습니다. set alline -multipleSeelection 및 enliceiptySelection은 튜토리얼에 설명 된대로 URL 이미지 표현을 사용하여 사용자 정의 이미지 객체를 만들었습니다.
그런 다음 선택을 받으려면 사용자가 "확인"버튼을 클릭 할 때 트리거 할 방법을 작성했습니다.
NSIndexSet *retval = [imageBrowser selectionIndexes];
NSInteger i = [retval firstIndex]; //the index of the selection. Corresponds to index in my array data source
NSString* path = [[styleViewData objectAtIndex:i] imageRepresentation]; //path to selected image, if you need it
튜토리얼은 매우 유용합니다. 이미지와 줌 슬라이더 등을 추가하는 것에 대한 내용을 무시합니다.
해결책
당신은 ikimagebrowserview를 원합니다.