2013-09-27 2 views
0

나는 Xcode5와 함께 일한다.NSTextField의 너비를 내용에 맞게 조정하는 방법은 무엇입니까?

NSTextField의 폭을 콘텐츠에 맞게 조정하고 싶습니다.

InterfaceBuilder에서 가능한 경우 서브 클래 싱없이이 작업을 수행하고 싶습니다.

편집 : 나는 autolayout으로 작업 중입니다! (내 NSTextField의 너비를 변경하지 못하게하는 것 같습니다)

+1

에 왜 당신이 필요로하는 무엇입니까? 나는 당신을 도울 수있는 대체 솔루션을 줄 수 있거나, 적어도 당신을 올바른 방향으로 안내 할 수 있습니다. –

+0

일반 레이블이 있습니다 : "Hello ". 이 레이블 다음에는 또 다른'NSTextView'가 있습니다. 나는 첫 번째 것 바로 다음에 두 번째 것을 원한다. – Colas

+1

자동 레이아웃 전문가가 아니지만 가중치와 함께 작동하므로 오른쪽 가장자리보다 더 적합한 가중치를 지정할 수는 없습니까? –

답변

1

NSTextField에 대한 설명서에는 내용에 따라 NSTextField의 크기를 조정할 수 있다는 것을 보여주는 내용이 없으므로 불가능하다고 가정합니다. giggles 내가 스토리 보드를 확인하고 NSTextField 텍스트 속성과 관련이없는 자동 크기 조정 마스크 외에도 NSTextField의 크기를 조정할 수있는 속성이 없습니다.

+0

왜 이것이 대답입니까? 이것은 분명 불가능하지 않으며이 문제를 해결할 수있는 여러 가지 방법이 있습니다. 'bStringRect (크기 : NSSize, 옵션 : NSStringDrawingOptions = [], 속성 : [문자열 : Any]? n = nil) -> NSString '에 대한 NSRect'은 시작하는 방법 중 하나입니다. –

+0

위의 대답을 만들 때 본질적인 크기로 크기를 조정하는 등의 오버 헤드가없는 접근을 원한다고 가정했습니다. Autolayout은 당신이 원한다면 항상 스스로 할 수있는 수학 계산의 집합 일뿐입니다. 그리고 그 논리를 가지고 모든 것이 크기가 조정됩니다. –

3

다음과 같이하십시오 : - 연결 대리자를 당신의 텍스트 필드

-(void)controlTextDidChange:(NSNotification *)obj 
{ 
    NSString *str=[yourTextField stringValue]; 
    NSCell *cell=[[NSCell alloc]initTextCell:str]; 
    CGFloat sz=[cell cellSize].width; 
    [yourTextField setFrameSize:NSMakeSize(sz+10.0, 22.0)]; 
} 
+0

'autolayout'이 활성화되어 있지 않으면 작동합니다. 하지만'autolayout'에서는 작동하지 않습니다 ... 그리고'autolayout'이 필요합니다! – Colas

+0

Autolayout에는 "내재 가치"라는 제약 조건이 있습니다. 이는 레이블을 내용의 크기로 설정한다는 의미입니다. 이것은 UILabel을위한 것일 뿐이므로 입력 할 수 없습니다 ... –

+0

이것은 아주 좋습니다 !!! 나는 이것을 몇 시간 동안 찾았습니다. 감사합니다! – maxisme

관련 문제