幅が固定で高さが可変のビューを作成したい。これは、コンテンツの高さに応じてビューのサイズを自動的に変更する必要があることを意味しますが、同時に同じ幅を維持する必要があります。
どうすればプログラムでそれを達成できますか?
たとえば、ラベルとボタンを作成する次のコードがあります。
NSTextField *label = [[NSTextField alloc] initWithFrame:[self frame]];
[label setEditable:NO];
[label setBackgroundColor:[NSColor clearColor]];
[label setBezeled:NO];
[label setFont:[NSFont fontWithName:@"Lucida Grande" size:13.0]];
[label setStringValue:@"Sample label text"];
NSButton *button = [[NSButton alloc] initWithFrame:primaryBounds];
[button setBezelStyle:10];
[button setTitle:@"Sample button text"];
[button setBounds:NSInsetRect([button bounds], -8.0, 0)];
[button sizeToFit];
[[self contentView] addSubview:label];
[[self contentView] addSubview:button];
それらはcontentView
フレーム全体を埋めるように設定されました。固定幅と可変高さ (それ自体のテキスト コンテンツに基づく)を設定label
するにはどうすればよいですか?button
label
さて、私はlabel
このように自動サイズ調整することができました:
NSTextView *label = [[NSTextView alloc] initWithFrame:NSMakeRect(0, 0, [self frame].size.width, 0)];
[label setEditable:NO];
[label setBackgroundColor:[NSColor clearColor]];
[label setFont:[NSFont fontWithName:@"Lucida Grande" size:13.0]];
[label setString:@"Sample label text"];
[label setHorizontallyResizable:NO];
[label sizeToFit];