2010-06-22 2 views
2

내가 찾는 것은 동적으로 창을 배치하는 CA의 방법입니다. 창에서 다음 SQL 쿼리를 상상해보십시오. + PLUSSIGNS +와 NSPopUpButton 사이의 각 이름은 정적 텍스트입니다.코어 애니메이션을 사용하여 코코아 창을 동적으로 레이아웃하고 채 웁니다.

선택 *
에서 + 부리 토/TACOS1 + + AND/OR1 +
+ 부리 토/TACOS2 + + AND/OR2 +
경우
+ TOPPING1 + + EQUALS/LT/GT1 + + TOPPINGLIST1 + + 및/OR3 +
+ TOPPING2 + OK : 그러면 창에 "Select *"와 "from"일반 텍스트 레이블이 표시되고 BURRITOS/TACOS1이 유효한 값 대신 "-"로 선택되기 시작합니다. .

BURRITOS/TACOS1을 유효한 값 (BURRITOS)으로 설정하면 AND/OR1 NSPopUpButton을 "-"로 선택하고 싶습니다. "Where"레이블이 나타나기를 원하고 "TOPPING1" "EQUALS/LT/GT1" "TOPPINGLIST1"이 나타나길 원합니다. 그 중 3 개는 모두 "-"로 선택됩니다.

AND/OR1을 올바른 값 (AND 또는 OR)에 넣으면 BURRITOS/TACOS2가 나타나기를 원합니다. 값을 선택하면 AND/OR2가 나타나기를 원합니다. 값을 설정하면 BURRITOS/TACOS3이 나타나기를 원합니다 ....

TOPPING1, EQUALS/LT/GT1 및 TOPPINGLIST1을 유효한 값으로 설정하고 AND/OR3을 표시하려면 ("- - "). AND/OR3을 유효한 값으로 설정하면 TOPPING2, EQUALS/LT/GT2, TOPPINGLIST2가 나타납니다. 유효한 값으로 설정하면 AND/OR4가 표시됩니다.

예를 들어 AND/OR3이 -로 설정되어 있고 그 아래에 한 줄이 있으면 전체 줄이 사라지기를 원합니다. .

전체 창 하단에 정적 확인란이 필요하며 항상 "사용"됩니다. 또한 왼쪽 및 오른쪽 화살표 단추가 필요합니다. 왼쪽을 클릭하면 전체 창이 왼쪽으로 "뒤집"됩니다. 오른쪽을 클릭하면 전체 창을 새 쿼리의 오른쪽으로 "뒤집습니다".

이 새로운 NSPopUpButtons가 CC.BCC 등의 새로운 텍스트 항목이 해당 Picker 컨트롤을 사용하는 설정을 기반으로 나타나는 Mail.app와 유사하게 보이기를 바랍니다.

+0

질문의 범위가 너무 좁아서 간결하게 대답 할 수 없습니다.나는 그것을 분리 된 질문으로 분해 할 것을 제안한다. (초점을 세밀하게하기 위해 이것을 편집하고, 다른 질문을 추가한다. 각각은 배우려고하는 특정 포인트에 초점을 맞춘다.) 다른 말로하면, "깨뜨려 라." –

+0

나는 내 질문의 작은 부분을 없앴다. 과거의 경험에서 그러나 내가 그것을 무너 뜨린다면 나는 상황을 전달할 수 없으며, 아마도 도움이되지 않는 대답으로 모든 사람의 시간을 낭비 할 것이다. 어쩌면 간결하게 대답 할 수는 없지만 특정 정답이있을 수 있습니다. 누군가가 간결하게 대답하기를 원한다면 "사용하는 CA는 전체 창과 각 영역에 레이어를 넣고 그 레이어 안에는 IB가 없거나 사용하지 마십시오."라고 대답 할 수 있습니다. 내 질문에 대한 답을 모른다. – Nektarios

답변

0

이 질문은 정말 두 가지 질문입니다.

1 - 창의 동적 레이아웃. 가장 간단한 방법으로이 NSWindow 표시에 NSView의 퍼팅 후는 NSView의 addSubview .. 예를 사용하여 수행됩니다 :

NSRect rect = NSMakeRect(0, y, 100, 10); 
NSButton *button = [[NSButton alloc] initWithFrame:rect]; 

y += 15; 
[topView addSubview:button]; 

가 여기에 NSButton 뷰 내에서 매 15 개 픽셀을 배치됩니다. y는 저에 의해 유지되어야합니다. 자동이 아닙니다. 우리가 NSView 경계를 오버런한다면 우리는 스스로 크기를 관리해야합니다.

2 -이 장면 전환 애니메이션. Core Animation을 사용하는 것이 현명하지는 않습니다. NSAnimation과 NSViewAnimation이 더 합리적인 방법입니다. Apple here 덕분에 좋은 예가 있습니다. 제 목적을 위해서 NSViews의 크기를 조정하고 이동시키기 위해 이것을 사용해야합니다. 또한 버튼을 "페이드 인 (fade in)"하려면 NSView를 복사 한 다음 "이전"으로 유지하고 NSView를 수정 한 다음 그 사이를 페이드 인으로합니다.

... freenode의 #cocoa 덕분에 ..

관련 문제