2009-09-03 5 views
6

NSWindow의 크기를 픽셀 단위로 가져 와서 표시 할 수있는 방법이 있습니까? 사람이 창 크기를 조정하면 텍스트가 변경되어 새 크기가 표시됩니다. 에 대해 어떻게nswindow 크기 가져 오기

답변

12

당신이 윈도우의 대리인으로 설정 한 개체의 방법

- (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize

을 구현하는 경우, 그것은 호출됩니다. 거기에서 크기를 표시하는 데 사용하는 텍스트 필드를 업데이트 할 수 있습니다.

+0

여기에 내가 가진 무엇 확인 : - (NSSize) windowWillResize : (NSWindow 표시 *) sendertoSize : (NSSize) FRAMESIZE { \t [길이하는 setStringValue : @ "thisworks"]; \t [width setStringValue : @ "test"]; \t return; } (문자열은 작동하는지 확인하는 테스트입니다.) 모든 것이 정확하게 연결되어 있으며 모두 저장됩니다. 하지만 응용 프로그램을 실행하면 "레이블"로 표시되므로 내가 말한 내용을 나타내지 않습니다. –

+0

위 코드는 델리게이트에 있습니까? 컨텍스트를 제공해야하는 코드로 질문을 업데이트 할 수 있습니까? – fbrereto

+0

윈도우 델리게이트 –

5

: 창 크기를 변경할 때마다

CGSize window_size = my_window.frame.size; 
0

크기 조정을 처리하는 대신보기의 자동 크기 조정 마스크가 올바르게 설정되어 있는지 확인해야합니다. Interface Builder에서 뷰를 선택하여 크기 속성 (⌘3)에서이 작업을 수행 할 수 있습니다.

자동 크기 조정 마스크를 설정하지 않고 전체 뷰 계층 구조를 배제하면 약간의 지루함이 있지만 어렵지 않고 (지루한) 그리 오래 걸리지 않을 것입니다. 따라서 설정보기의 자동 크기 조정 마스크를 만들 때 설정보기를 수행해야합니다.

자동 크기 조정 마스크가 설정되면보기 크기가 자동으로 조정됩니다. 귀하의 인터페이스가 매우 복잡하거나이 복잡하거나 뷰가 0 크기가 될 수있는 경우가 아니면 개입 할 필요가 없습니다.

+0

어떻게하면 NSTextField를 사용하여 크기를 표시 할 수 있습니까? –

+0

아, 크기를 확인하고 크기를 조정하도록 요청한 것 같습니다. 죄송합니다. 나는 켄의 대답을지지합니다. –

2
NSSize myNSWindowSize = [ [ myNSWindow contentView ] frame ].size; 

... 찾고 계신 것이 틀림 없습니다. fbrereto의 제안은 NSWindow의 제목 표시 줄을 포함하여 크기를 원한다면 사용해야하는 것입니다.

+0

또는, 윈도우의'frame'을 가져온 다음 윈도우에'contentRectForFrameRect :'메시지를 보내서 변환하십시오. –

관련 문제