2009-07-21 5 views
1

오늘 내 애플리케이션의 기본 창에 시트를 추가하기 위해 노력했습니다. 두 가지 (메인보기/컨트롤러 및 시트보기/컨트롤러)를 분리하는 데 문제가 생긴 후에는 동일한 xib에서 두보기를 모두 가지고 있고 주 컨트롤러로 제어했습니다. 이제 beginSheet 메서드가 호출 될 때 나타났습니다. 폼을 디자인하고 컨트롤러의 IBOutlets/Actions에 연결했습니다.이상한 디스플레이 동작을 유발하는 인터페이스 - 빌더 아울렛

여기가 문제입니다. 폼 객체와 컨트롤러 사이에 바인딩이 없으므로 완벽하게 표시됩니다. 그러나 버튼을 IBActions에 연결하고 텍스트 필드/이미지 뷰를 IBOutlets에 연결하면 이상한 디스플레이 문제가 발생합니다. 나는 버튼을 표시하지 않는다. (하지만 액션이 실행되는 위치는 클릭해야한다.) NSBox의 테두리는 보이지 않고 텍스트 필드는 타이핑 된 텍스트를 가져 가지 않고 패널의 가시 영역에서 더 멀리 (아직 공백으로) 표시한다.

패널의 크기를 약간 조정하여이를 수정할 수 있음을 발견했지만 사용할 수 없습니다. 나는 그것을 3 개의 텍스트 필드와 3 개의 버튼으로 잘 작동시키고 close/minimize를 가능하게 만들었지 만 (사실 그들은 시트에 아무 것도하지 않는 것 같지는 않다), 이제 컨트롤러와 버튼 중 하나에 이미지 뷰를 연결했다. 다시 표시되지 않습니다.

이것은 내가 사용하고있는 아웃렛/액션의 수와 관련이 있습니까? (실제 메인 윈도우는 실제로 여분의 것들을 가지고 있지 않습니다) 또는 IB가 버그가 있거나 저에게 뭔가 잘못하고있는 것입니까?

답변

0

처음부터 시트를 재구성하면이 문제가 해결되었습니다. 나는이 문제를 일으킨 것이 무엇인지 모르겠지만, 비슷한 문제가있는 사람이라면 새로운 시트에 그것을 재구성하는 것이 좋습니다.

1

첫 번째 의심은 시트를 그릴 때 어딘가에 예외가 발생한다는 것입니다. 제 경험으로 볼 때, 일반적으로 설명하는 것처럼 반쯤 그려진 컨트롤을 얻는 경우입니다. Xcode의 디버거 콘솔에서 오류 메시지가 인쇄되어 있는지 확인하십시오. objc_exception_throw에 중단 점을 추가하여 예외가 throw 될 때 디버거를 중지 시키면 문제가 발생한 정확한 위치를 밝힐 수 있습니다.

+0

불행히도 디버거 콘솔에는 아무 일도 일어나지 않는 이유가 있습니다. 나는 당신이 제안한 브레이크 포인트를 추가했다. (단지 Debugger-> Breakpoints-> Symbol을 더블 클릭하고 거기에 타이핑 해 본다.) 아무런 새로운 일이 일어나지 않았다. – Septih

관련 문제