私は NSTextField を持っていますが、表示する必要があるコンテンツは固定されておらず、動的に成長します。サイズを動的に変更できる簡単な方法はありますか。前もって感謝します :)
3 に答える
テキスト フィールドに入力するのではなく、コンテンツを表示するだけの場合は、ラベルを使用する必要があります。ラベルは IB で「コンテンツに合わせたサイズ」に設定できます。これにより、ラベルがコンテンツに対して十分な大きさになります。
Interface Builder で設定するオプションはありません。
ただし、コードを使用して実行できます。実装する NSTextField にデリゲートを設定できます。
- (void)controlTextDidChange:(NSNotification *)aNotification;
デリゲートが呼び出されるたびに、上記のアイデアに従ってコントロールのサイズを変更します。
また、これ。
Jerry Krinock による NSString/NSAttributedString には、幅に基づいてテキストの高さを計算できる優れたカテゴリがあり、その逆も可能です。
http://www.sheepsystems.com/sourceCode/sourceStringGeometrics.html
2016年3月編集:
テキストフィールドや NSWindow のサイズを増減するのに役立つ Mac OS アプリケーション用の Autolayout 機能があるため、非常に簡単に使用できます。ウィンドウの両側から制約を設定し、制約を ( >= desiredMinimumSize ) のように設定するだけで完了です!