2009-10-12 4 views

답변

3

NSRect는 다음과 같이 정의된다 :

typedef struct _NSRect { 
    NSPoint origin; 
    NSSize size; 
} NSRect; 

그리고 NSSize는 다음과 같이 정의된다 :

typedef struct _NSSize { 
    CGFloat width; 
    CGFloat height; 
} NSSize; 

은 먼저 숫자로 NSString의 변환해야합니다.

CGFloat numericalValue = [stringValue doubleValue]; 

이 발생할 수 있습니다 (I 지금 그것을 찾아 볼 너무 게으른 CGFloatfloat 또는 double A와 정의 된 경우 실제로 기억하지 않습니다..) :이 같은 것을 할 수 stringValue이 올바른 형식의 숫자가 아닌 경우 예외입니다.

+0

감사합니다. 이제 오류를 없애고, 이제 그 높이와 너비를 설정해야합니다. –

+1

'CGFloat'은 32 비트의'float'과 64 비트의'double'입니다.하지만 NSSize를 만들 필요가 있기 때문에 아마'NSMakeSize'를 사용할 수 있습니다. 따라서' 고객 mWidth floatValue]'등. – Abizern

+0

네,'NSMakeSize'는 더 쉽고 작아 질 것입니다. 나는 내 대답에서 언급 했어야했다. 'CGFloat'을 찾는 노력을 저에게 보내 주셔서 감사합니다 :-) – Alex

4

NSWindow에서 setFrame:display: 또는 setFrame:display:animate: 메서드가 필요합니다. documentation에서

:

- (void)setFrame:(NSRect)windowFrame display:(BOOL)displayViews 

매개 변수
windowFrame
윈도우의 프레임 사각형입니다. 윈도우가 표시 될 필요가있는 뷰를 다시 그리는지 여부를

displayViews
를 지정합니다. 예를 선택하면 창에서 displayIfNeeded 메시지를 뷰 계층 구조로 보냄으로써 모든 뷰를 다시 그립니다.

+0

길이와 너비는 어떻게 설정합니까? –

+0

Serriously? 그게 전부 요점입니다. 원하는 원산지와 크기의 NSRect를 만든 다음이 방법으로 창에 보내십시오. 크기가 바뀝니다. –

+0

그게 내가 시도한거야하지만 "할당에 호환되지 않는 유형"이라는 오류가 있습니다. –