2

SMPTE タイム コード値を適切に表示するために、独自のカスタム NSFormatter クラスと NSTextField クラスをサブクラス化して定義しました ( HH:MM:SS:FF)。ユーザーが fps 値にドロップ フレームの使用を選択すると、形式がHH:MM:SS;FF(末尾のセミコロン) に変わります。最後のハードルを除いて、これはすべてうまく機能しています。

フォーマットを変更すると、フォーカスのある NSTextField は、フォーカスが失われるまで表示を更新しません。説明するスクリーンショットを次に示します。

ドロップフレーム形式への変更

setNeedsDisplay形式が変更されたときにメッセージを送信するだけでなく、NSTextFieldにメッセージを送信しようとしましたdisplay。これまでのところ何も機能していないようで、フォーカスのあるテキスト フィールドは、フォーカスを失うまで更新/再描画を拒否します。

これを実現するために何をする必要があるかについての提案はありますか?

4

1 に答える 1

1

私は今この問題を解決することができました。少しハックかもしれませんが、基本的に私がやったことは、NSTextFieldのフィールドエディターを取得currentEditorし、フォーマットが変更されたときに投稿された通知とともにオブジェクトとして送信することでした。

フィールド エディターを使用してreplaceCharactersInRange:withString:、最後の ":" を ";" に変更するだけで済みました。およびその逆。最適ではないかもしれませんが、完全に機能します。

実際、これが役立つと思われる他の人のために、解決策を github に投稿しました。 https://github.com/cfloisand/smpteformatter

于 2013-05-22T16:09:19.743 に答える