私はこのようにプログラムでNSTextField
を作成したココアアプリを作成しています。
NSView *superView = [[NSView alloc] initWithFrame:NSMakeRect(0, 300, 1400, 500)];
NSTextField *myTextField = [[NSTextField alloc] initWithFrame:NSMakeRect(180, 100, 1000, 300)];
[myTextField setStringValue:myText];
[myTextField setEditable:NO];
[myTextField setBezeled:NO];
[myTextField setDrawsBackground:NO];
[myTextField setSelectable:NO];
[myTextField setFont:[NSFont fontWithName:@"Futura" size:22]];
[superView addSubview:myTextField];
[superView setAutoresizesSubviews:YES];
[myTextField setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
[self.window.contentView addSubview:superView];
今、私は私のテキストの垂直方向の配置が必要であり、それはテキストの長さに従って調整可能でなければなりません。
誰か提案がありますか?あなたの提案を共有してください:)
どうもありがとう..!!
必要なことは可能ですが、NSTextFieldCellのサブクラスを作成してから、そのサブクラスをNSTextFieldで使用する必要があります。オーバーライドする主要なメソッドはdrawingRectForBounds:
、selectWithFrame:
、およびeditWithFrame:
これは素晴らしいDaniel Jalkutからのブログ投稿です これについて、彼はすぐに使えるダウンロード可能なバージョンも含んでいます。投稿はかなり古いですが、それでも問題なく動作するはずです。
テキストフィールドを文字列サイズに調整するには、フレームを設定してテキストフィールドのサイズを調整する前に、NSString
のsizeWithFont: constrainedToSize: lineBreakMode:
を使用してテキストサイズを計算する必要があります。
垂直方向の配置については、これを見てください 質問 (および回答)。