1

Image の機能に IKImageView を使用しています。

- (IBAction)switchToolMode: (id)sender
{
    // switch the tool mode...

    NSInteger newTool;

    if ([sender isKindOfClass: [NSSegmentedControl class]])
        newTool = [sender selectedSegment];
    else
        newTool = [sender tag];

    switch (newTool)
    {
        case 0:
            [_imageView setCurrentToolMode: IKToolModeMove];
            break;
        case 1:
            [_imageView setCurrentToolMode: IKToolModeSelect];
            break;
        case 2:
            [_imageView setCurrentToolMode: IKToolModeCrop];
            break;
        case 3:
            [_imageView setCurrentToolMode: IKToolModeRotate];
            break;
        case 4:
            [_imageView setCurrentToolMode: IKToolModeAnnotate];
            break;

    }
}

[_imageView setCurrentToolMode: IKToolModeAnnotate];呼び出された後、現在のマウス位置を取得する必要があります(形状を描画した後)。IKToolModeAnnotateはデフォルトの機能なので、コントロールが次にどこに行くのかを見つけることができません。

誰でも私の問題を解決できますか。

4

1 に答える 1

1

を呼び出すことで、NSApplication常に最後のそれぞれの現在のイベントを取得できます[NSApp currentEvent]。そこからマウスの位置を抽出できます。

または、 経由で場所を取得します[NSWindow mouseLocationOutsideOfEventStream]NSEventポイントに使用される座標系であるこれらの場所の違いを理解するために、読み進めることをお勧めします。NSEvent のドキュメントも参照してください

于 2014-02-04T08:22:43.040 に答える