2010-11-23 4 views
18

어쩌면 시간이 늦었 겠지만 Visual Studio에서와 마찬가지로 인터페이스보기 대화 상자의 전반적인 탭 순서를 설정할 수있는 곳을 찾을 수 없습니다.인터페이스 빌더의 탭 순서?

나는 뭔가를 놓친가요? 탭 순서가 모두 비뚤어졌습니다. 시뮬레이트 할 Command-R이 그것을 보여줍니다.

+0

당신이 언급하고있는 "탭 순서"의 스크린 샷, 그리고 당신이 "비뚤어진"검색을 포함하는 질문을 수정하세요. –

답변

36

찾고있는 코코아 용어는 "키 뷰 루프"입니다. initialFirstRespondernextKeyView 콘센트를 사용하여보기를 연결하는 순서대로 연결합니다. 키보드 포커스를받을 수있는 항목은 전체 키보드 액세스 설정 (시스템 환경 설정> 키보드)에 따라 달라집니다. 비활성화하면 키보기 루프에서 탭 이동이 여러 항목을 건너 뜁니다.

자세한 내용은 here 설명서에 나와 있습니다.

+1

감사합니다. 인터페이스 빌더 자체에서 주문을 설정하는 방법이 있습니까? 제 말은, 여러분이 무언가를 처음부터 만들면 탭 생성 순서가 정해 지리라 믿습니다. 나는 컨트롤 생성 순서를 믿습니다. 마지막 컨트롤을 뷰 자체의 "첫 번째 위치"에 추가하면 첫 번째 컨트롤이 아닌 것처럼 보이지만 마지막 컨트롤이 추가됩니다. 제 질문은 인터페이스 빌더 자체에서 프로그래밍 방식으로 가능하지 않은 순서로 조정할 수 있는지 여부입니다. – JasonGenX

+3

예, "콘센트 ...보기 연결"이라고 말하면 인터페이스 빌더에서 할 수있는 일에 대해 말하고 있습니다. 윈도우의 initialFirstResponder의 콘센트를 사용하여 "첫 번째 위치"를 설정합니다. –

+1

후자의 경우 현재 응답자를 강조 표시하고 콘솔에서 키보기 루프를 인쇄합니다. https://gist.github.com/mittsh/6668638 –

2

아울렛 이름을 a, b 및 c로 지정합니다. 맥 기본 탭 순서는 a -> b -> c -> a

입니다 그러나 원하는 탭 순서는 a -> c -> b ->a입니다 : IB를 사용

enter image description here

:

initialFirstRespondera을 설정합니다.

그러면 nextKeyView를 a to c, c to b and c to a으로 설정하십시오.

하지만 코드를 사용하는 것이 더 좋으며 여기서 더 쉽게 추가 할 수 있습니다. 복잡한 UI 에서처럼 30 개 이상의 컨트롤이있을 수 있으며 새 컨트롤을 삽입하거나 삽입해야 할 수도 있습니다.

그래서 당신은 동일을 달성 할 수있는 등 :

[self.a setNextKeyView:self.c]; 
[self.c setNextKeyView:self.b]; 
[self.b setNextKeyView:self.a]; 
+0

일부보기가 기본적으로 숨겨져 있고 나중에 볼 수있게되면이 기능이 작동하지 않습니다. – Etan

+0

@Etan : 이러한 경우에는 어떤 뷰가 표시되는지에 따라 nextKeyView 런타임을 설정해야합니다. –

관련 문제