2017-09-06 18 views
0

iOS가 아닌 OSC 인 objectiveC에 있습니다. XCode 8.3모달 NSWindow 다시 볼 수있게 된 후 알림

메인 윈도우에서 모달로 열리는 환경 설정 윈도우 (사용자 정의 NSWindow)가 있습니다.

환경 설정 창 자체에는 탭이있는보기가 있습니다. 탭 높이는 클릭 할 때마다 창 크기를 변경합니다.

첫 번째 탭을 클릭 :

enter image description here

두 번째 탭을 클릭 :

이제 누군가가 환경 설정 창에 활성화되고, 도크에서 응용 프로그램을 숨기고 다시 활성화하면

enter image description here

탭 2가 여전히 활성화되어 있어도 탭 1의 높이. 그래서 내용은 끊어집니다.

enter image description here

은 무엇 내가 필요하면이 표시되기 전에 윈도우의 크기 조절을 트리거 다시 볼/활성화되고 트리거됩니다 통지의 일종이다.

NSWindow 하위 클래스 (NSWindow 대리자 세트 사용)에서 이러한 알림을 사용해 보았습니다.

- (void)windowDidResignMain:(NSNotification*)notification{ 
NSLog(@"windowDidResignMain"); 
} 

- (void)windowDidResignKey:(NSNotification*)notification{ 
NSLog(@"windowDidResignKey"); 
} 

- (BOOL)canBecomeKeyWindow{ 
    return YES; 
} 

- (BOOL)canBecomeMainWindow{ 
    return YES; 
} 

그러나 그 중 아무 것도 작동하지 않았습니다. 그것은 모달 윈도우이기 때문에입니까? 도움을 주시면 감사하겠습니다.

+1

이렇게해서는 안됩니다. 배치/크기 조정의 어떤 방법으로 여기에서 사용하고 있습니까? 자동 레이아웃? 스프링과 스트럿 (struts)? 창 크기는 어떻게 조절합니까? 어떻게 탭을 채우거나 전환합니까? – uliwitness

답변

0

찾았습니다. 내 실수 - 내 tabViewController 항상 첫 번째 탭 viewWillAppear에 대한 크기 조정을 트리거합니다. 나는 그것을 현재 선택한 탭으로 바꿨다.