6

私は NSTokenField で作業できます。使いやすいです..しかし、Mac メールの「To/CC」フィールドと同じようにカスタマイズする方法についての提案が必要です。いいえ。トークン フィールド内のトークンの数が増加すると、「To」フィールドの高さが一定の制限まで増加すると、垂直スクローラーが表示され始めます。

デフォルトでは、トークン フィールドを使用する場合、その高さは増加せず、垂直スクローラーも表示されません! IB でさまざまな組み合わせを試しましたが、Mac メールのような機能を得ることができませんでした。

誰かが私に解決策を提案できますか??

4

2 に答える 2

4

必要な機能を得るには、NSTokenField をサブクラス化する必要があります。必ず setWraps: YES を呼び出してください。

トークン フィールドの内容が変更された場合、トークン フィールドの必要なサイズを計算し、自分でサイズを変更する必要があります。スクロールバーを追加しても同じです。トークン フィールドの高さが一定のサイズに達したら、フィールドにスクロール ビューを挿入します。逆に、トークン フィールド サイズの再計算がクリティカル サイズよりも小さい場合は、スクロール ビューを削除します。

これは、正しく動作させるためにかなりの量の作業です (私が見つけました)。Apple は、NSTokenField は「メール アプリケーションのアドレス フィールドに似たトークン化された編集を提供する」と述べていますが、サイズ変更機能が組み込まれておらず、テキスト以外ではドラッグ アンド ドロップが問題になるため、実際にはそれほど似ていません。

于 2010-06-17T21:09:04.600 に答える
2

IFVerticallyExpandingTextFieldを使用してこれを達成できました。NSTokenField は NSTextField を継承するため、IFVerticallyExpandingTextField を NSTokenField から継承し、IFVerticallyExpandingTextField をサブクラス化して、私のバージョンの NSTokenField で行う必要があるすべてのことを実装しました。

これはただのドロップインである必要があります。すぐに機能し始めるはずです。

于 2010-09-17T16:05:56.160 に答える