2012-03-20 2 views
0

저는이 답변에 정말 감사하겠습니다 만, 현상금 (!)을 지불 할 여력이 없습니다.Lion에 의해 초점이 잘못 보존되었습니다.

아주 간단한 GUI가 있습니다. 사용자는 소스 단어와 대상 단어를 두 개의 텍스트 상자에 입력 한 다음 버튼을 누릅니다. 그리고 많은 털갈이가 일어나고, 30 초 후에 답변이 표시됩니다. 사용자는 지루할 때까지이 작업을 계속 한 다음 앱을 닫습니다. 앱이 다시 시작될 때 당연히 소스에 포커스가 있어야하며 설명 된 것보다 더 성숙한 방법이 필요합니다. 아래의 주석 작성자는 문제가 Lion persistence의 인공물이라는 느낌을 받았음을 확인했습니다.이 같은 단순한 경우에는 정말 귀찮습니다.

Lion에서 실행되는 Xcode 4.3의 간단한 Cocoa 응용 프로그램에서 간단한 '컨트롤러'클래스의 awakeFromNib 메서드에서 NSTextField를 첫 번째 응답자 (윈도우의 makeFirstResponder 사용)로 설정했습니다.

makeFirstResponder는 재부팅 후 처음으로 응용 프로그램이로드 될 때 정상적으로 작동하지만 모든 재실행시 마지막으로 액세스 한 필드에 포커스가 설정됩니다. (윈도우의 initialFirstResponder 콘센트를 원하는 NSTextField에 연결하려고했지만 동일한 문제가 발생했습니다.)

마지막으로 NSApplication 대리자의 initialisation 함수를 호출하고 makeFirstResponder 호출을 호출하여 해결했습니다.

수정 사항이 조금 복잡합니다. 컨트롤러에 전역 변수를 추가하고 awakeFromNib에서 자체 변수를 초기화했습니다.

나는 응용 프로그램의 코코아 부분이 간단하다는 정보를 추가하지만 그 대부분은 Windows에서 이식 된 .cpp 파일의 STL 항목의 대량입니다.

+0

라이온 지속성 때문입니다. –

+0

@Rob 감사합니다. 진짜 코코아 남자가 초점을 맞추기 위해 무엇을합니까? 아니면 라이온이 고쳐질 수 있습니까? –

답변

1

IB 창의 속성 관리자에서 "Restorable"체크 상자를 선택 취소하십시오. 물론, 당신은 그 위치와 크기를 기억하는 것과 같은 복구 할 수있는 창을 가지고 다른 행동을 갖지 않을 것입니다.

+0

정확히 맞습니다! 고마워. –

관련 문제