0

私はココア開発の初心者で、押されたキーの値をラベルに表示し、キーが押されていないときにクリアする非常に基本的なプログラムを作成しようとしています。私はどこでも検索し、同様のスレッドを見つけて、不可解な開発者ライブラリを調べましたが、それらを機能させることができないようです. どんな助けでも素晴らしいでしょう。私は非常に新しいことを忘れないでください。

本当に必要なのは、プログラムの実行中に押されたキーの値を返すコードを知ることだけです。多分そこからわかると思います。

ありがとう

編集 - わかりました。レスポンダー チェーンに関する Apple のドキュメントを何度か読みましたが、概念は理解できたと思います。ただし、コードが機能しない理由がわかりません。これが私が持っているものです。これを App Delegate の実装の下に置くことができると思いますか? 私は単純なデフォルトのアプリケーションを持っています。NSApplication は keyDown イベントをアプリ デリゲートに渡す必要があります。これは最初のレスポンダーであるため、キーを読み取ってログに記録する必要があります。お分かりのように、私はまだイベントがどのように機能するかを完全には理解していないかもしれません。どんな援助も素晴らしいでしょう。

- (BOOL)acceptsFirstResponder {
    return YES;
}

- (void)keyDown:(NSEvent *)theEvent
{

    NSString *key = [theEvent characters];


    NSLog(@"keyDown [%@]", [theEvent characters]);
}
4

1 に答える 1

1

ファーストレスポンダーが実装する必要があるオブジェクトは何であれ-(void)keyDown:(NSEvent *)theEvent-(void)keyUp:(NSEvent *)theEvent. NSStringwithの形式でイベントから文字を取得できます-(NSString *)character。アプリにウィンドウが 1 つだけあり、そのコントローラーが上記のメソッドを実装するように設定されている場合、ウィンドウにイベントを食べるものがない限り、それは機能するはずです。

于 2013-02-15T18:40:11.497 に答える