1

今日、私はこの質問から生まれた質問があります: Database Results in Cocoa . データベースから返されたデータを使用して、特定の数の質問を作成することに関するものです。次のコードの形式を使用しています (これは質問に投稿されています)。

NSMutableDictionary * interfaceElements = [[NSMutableDictionary alloc] init];

for (NSInteger i = 0; i < numberOfTextFields; ++i) {
  //this is just to make a frame that's indented 10px
  //and has 10px between it and the previous NSTextField (or window edge)
  NSRect frame = NSMakeRect(10, (i*22 + (i+1)*10), 100, 22);
  NSTextField * newField = [[NSTextField alloc] initWithFrame:frame];
  //configure newField appropriately
  [[myWindow contentView] addSubview:newField];
  [interfaceElements setObject:newField forKey:@"someUniqueIdentifier"];
  [newField release];
}

ただし、IFVerticallyExpandingTextfield ( http://www.cocoadev.com/index.pl?IFVerticallyExpandingTextFieldから) を使用しようとしたり、大量のテキストを作成しようとすると、他の描画されたコンテンツを単に超えてしまいます。オブジェクトで setAutosizingMask: を使用することを検討しましたが、これまでのところ機能していません。

助けてくれてありがとう。

編集:効果をどのように見せたいかは「正しいテキストフィールド」と呼ばれ、何が起こるかは「スタックオーバーフローサンプル」と呼ばれます- http://www.mediafire.com/?sharekey=bd476ea483deded875a4fc82078ae6c8e04e75f6e8ebb871 .

EDIT 2:そして、このIFVerticallyExpandingTextfieldクラスの使用方法を誰も知らない場合、効果を達成する別の方法があるかどうかは誰にもわかりますか?

4

1 に答える 1

1

これのことですか?

http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaDrawingGuide/GraphicsContexts/GraphicsContexts.html

あなたの質問は私にはあまり明確ではありませんが、これは役立つかもしれません^^;

そのページの「現在のグラフィックス状態の変更」を見てください。

「正しいテキストフィールド」の例からコードを正確にコピーして、アプリケーションで使用するのはどうですか? または、「正しい texfield」の例からアプリケーションを開始します。

また

http://www.cocoadev.com/index.pl?IFVerticallyExpandingTextFieldに関するコメントには、次のように書かれています。

試してみる!これをプロジェクトに投入し、Interface Builder でファイルを読み取り、カスタム クラス ペインを使用して NSTextField を IFVerticallyExpandingTextField にすることができるはずです。これを機能させるには、ワードラップのレイアウトと改行属性を設定する必要があります。

テキストフィールドがサブビューに埋め込まれている場合、展開は適切に機能するはずですが、NSScrollViews の処理に問題があります。フィールドはスクロールビューのコンテンツ ビューに展開されますが、スクロールバーのコントロールは表示されません。ここでいくつかの助けをいただければ幸いです。

于 2009-08-17T16:26:24.247 に答える