5

私のCOCOAMacアプリケーションには、キューのオン/オフ機能用のNSSegmentedControlボタンが1つあります。今、私は同じためのキーボードショートカットを提供する必要があります。たとえば、キュ​​ーがオンの場合、すでにオフになっている場合はオフになり、その逆も同様です。

このタイプの機能を実行した人はいますか?

よろしく、バルン

4

1 に答える 1

2

インターフェイスビルダーを介してNSSegmentedControlにキーボードバインディングを追加する方法が見つからなかったため、プログラムでidを実行しました。PMWindowという名前のカスタムWindowクラスを作成しました:

@implementation PMWindow

- (BOOL)acceptsFirstResponder {
    return YES;
}

- (void)keyDown:(NSEvent *)theEvent {
    if([self.viewController.lastNextControl isEnabled]) {
        if([theEvent keyCode] == 123) {
            [self.viewController last];
        } else if([theEvent keyCode] == 124) {
            [self.viewController next];
        }
    }
}

@end

インターフェイスビルダーを介してPMViewControllerという名前のビューコントローラーをWindowクラスPMWindowに追加しました。この例では、キーストローク<左矢印>(123)および<右矢印>(124)に反応しています。

この例を完全にするために、誰かが私のNSSegmentedControl要素のセルにヒットしたときに呼び出されるメソッドの実装をここに追加しました。

- (IBAction)lastOrNext:(id)sender {
    switch ([sender selectedSegment]) {
        case 0:
            [self last];
            break;
        case 1:
            [self next];
            break;
    }
}
于 2013-12-27T15:05:26.413 に答える