0

私は、クリップボードから NSTextField に文字列を貼り付けるという、Cocoa (Mac OSX 10.8) での非常に単純なタスクであると思われることを実行しようとしています。

現在クリップボードに保持されている文字列にアクセスする方法は知っていますが、現時点での問題は、UI の 3 つのテキスト フィールドのどれが選択されているかを判断できないことです。

試行 1:

「貼り付け」コマンドを実行するとき、各テキスト フィールドに「選択されていますか?」と尋ねます。iOS 開発者からは、[aTextField isFirstResponder] のようにこれを行いますが、このメソッドは NSTextField には存在せず、同等のものが見つかりません。 .

試行 2:

3 つの NSTextField のいずれかが選択されたら、その TF を「アクティブ」フィールドとして保存し、ユーザーが貼り付けを選択すると、そこに文字列を貼り付けます。ここでの問題は、コントローラーをテキスト フィールドへのデリゲートとして設定し、次のように実装した場合です。

-(void)controlTextDidBeginEditing:(NSNotification *)obj {}

これは、ユーザーがテキストを選択したときではなく、テキストを編集したときにのみ呼び出されるため (ユーザーが上に貼り付けたい場合に通常発生するように)、このメソッドでは、どのテキスト フィールドが現在存在していたのかまだわかりません。したがって、テキストを貼り付ける場所。

Mac OSXでこの単純なタスクにどのように取り組むべきか知っている人はいますか? 私がやりたいのは、ユーザーがクリップボードからテキスト フィールドにテキストを貼り付けられるようにすることだけです!?

4

1 に答える 1

0

を使用して、ウィンドウからファーストレスポンダーを見つけることができます-[NSWindow firstResponder]。その後、アクションを送信できますpaste:。これが、[編集] メニューの標準の [貼り付け] 項目のしくみです。

于 2013-07-01T03:25:32.900 に答える