0

経由で追加するテキストを表示する NSTextView または NSTextField のいずれかを使用しようとしていますtextField.stringValue = [dictionary objectForKey:@"info"];

問題は、テキスト領域の境界/フレームを垂直方向にサイズ変更してすべてのテキストを表示する必要があることです。テキストは、数語 (1 行) から 1 つか 2 つの段落までさまざまです。

やってみると[textField sizeToFit];

全体のサイズを変更して、途方もなく長すぎる (そしてビューから外れる) 1 行に縮小します。現在のウィンドウの幅に応じて幅のサイズを自動的に変更し、それに基づいて高さのサイズを変更して、すべてのテキストを表示し続ける必要があります。

何を試すか、または方向性についてのアイデアはありますか? これは OSX no iOS 用です。

(この TextField または TextView は、ビュー ベース- NSTableView で使用されます。そのため、最終的には、そのテキスト ボックスに基づいてテーブルの行の高さを動的にサイズ変更しようとしています。)

4

1 に答える 1

0

現在のプロジェクトでこれと同様のことをする必要がありました。秘訣は、sizeWithFontメソッド onを使用することNSStringです。これにより が返され、CGSizeこれを使用して、テキストに合わせて適切なサイズのフレームを作成できます。

-(void) setCaption: (NSString*) text size:(CGSize) maxSize
{
    [self.label setText:text];
    UIFont* font=[UIFont systemFontOfSize: [UIFont systemFontSize]]
    [[self label] setFont:font];

    CGSize size=[text sizeWithFont:font constrainedToSize:maxSize];  
    label.frame = CGRectMake(0, 0, size.width, size.height);
}

ビューにアクセスできない場合は、これを Class ヘルパー メソッドにまとめることができます。

于 2012-08-22T17:37:11.657 に答える