30

NSTextField と NSTextView の主な違いは何ですか? NSTextView にはより多くの機能があり、通常は長いテキストに使用され、NSTextField は通常 1 行のプレーン テキスト フィールドに使用されることを知っていますが、正しく理解すれば、NSTextField は属性付きの文字列や複数行でも使用できます...

私が具体的に必要としているのは、Tweetie や他の同様のソフトウェアのようにタイムライン ビュー内にメッセージのテキストを表示するコントロールです。私が持っている唯一の要件は次のとおりです。

  • 約1〜4行でテキストを表示する必要があります
  • テキストにリンクを表示できるはずです(私が理解しているように、これは両方のコントロールで単純なはずです - http://developer.apple.com/mac/library/qa/qa2006/qa1487.html
  • ユーザーがテキストを選択してコピーできるようにする必要があります
  • ユーザーがテキストをスクロールしたり、テキストを編集したり、通常は編集可能なテキスト フィールドに表示されるコンテキスト メニューを表示したりしてはなりません。また、このフィールドにテキスト カーソルを表示することもできません。

このような要件がある場合、NSTextField または NSTextView を使用する方がよいでしょうか? NSTextField で十分ですか、それとも NSTextView には NSTextField にはない重要な機能がありますか?

4

1 に答える 1

39

NSTextField と NSTextView の主な違いは何ですか? NSTextView にはより多くの機能があり、通常は長いテキストに使用され、NSTextField は通常 1 行のプレーン テキスト フィールドに使用されることを知っていますが、正しく理解していれば、NSTextField は属性付きの文字列や複数行でも使用できます...

技術的には正しいですが、通常はテキスト フィールドをプレーン テキストの値に使用し、通常は 1 行のみです。(テキスト フィールドは複数の行を受け入れることができるため、複数の行を処理します。他に何もない場合は、テキストに対して行っていることを意味のある方法で改行を取り除きます。)

  • 約1〜4行でテキストを表示する必要があります

NSTextView.

NSTextView. NSTextField でリンクをサポートするのは難しいです。

  • ユーザーがテキストを選択してコピーできるようにする必要があります

これにはどちらでも機能します。

  • ユーザーにテキストをスクロールさせてはいけません。

NSScrollView のない NSTextField または NSTextView。ライブラリからテキスト ビューをドラッグし、[レイアウト] メニューから [非埋め込みオブジェクト] を選択することで、IB で後者を実行できます。

テキストを編集し、

これにはどちらでも機能します。

または、通常は編集可能なテキスト フィールドに表示されるコンテキスト メニューを表示します。

はい、そうすべきです。「コピー」や読み取り専用サービスなどのメニュー項目を常に提供する必要があります。どちらのコントロールでもこれを行う必要があります。これと戦わないでください。

このフィールドにテキスト カーソルを表示するべきではありません

これにはどちらでも機能します。

選択を有効のままにしておくと (通常はそうすべきです)、ユーザーがフィールドをクリックするとカーソルが表示されます。これは、Shift-⌘-矢印選択の選択アンカーがどこにあるかを示すための機能です。

このような要件がある場合、NSTextField または NSTextView を使用する方がよいでしょうか?

私はNSTextViewを使用します。

于 2010-03-08T02:36:01.850 に答える