0

ボタンを押したとき、マウスを動かし、ウィンドウをドラッグしないでください。

ボタンを押して移動するときは、ウィンドウを移動しないでください

コードのダウンロード。http://code.google.com/p/kacperwangbuttontab/downloads/detail?name=buttonTab.zip&can=2&q=#makechanges

ボタンを押してクラスButtonStyleを追加します。マウスを押して背景画像を変更します。

-(void)mouseDown:(NSEvent *)theEvent{
            [self setImage:[NSImage imageNamed:@"closeDown.png"]];
}

ここに画像の説明を入力してください

これがウィンドウをドラッグするコードです

- (void)mouseDown:(NSEvent *)theEvent
{ 
    NSRect  windowFrame = [self frame];
    initialLocation = [NSEvent mouseLocation];

    initialLocation.x -= windowFrame.origin.x;
    initialLocation.y -= windowFrame.origin.y;   
}
- (void)mouseDragged:(NSEvent *)theEvent
{
    NSPoint currentLocation;
    NSPoint newOrigin;

    NSRect  screenFrame = [[NSScreen mainScreen] frame];
    NSRect  windowFrame = [self frame];

    currentLocation = [NSEvent mouseLocation];
    newOrigin.x = currentLocation.x - initialLocation.x;
    newOrigin.y = currentLocation.y - initialLocation.y;
    if( (newOrigin.y+windowFrame.size.height) > (screenFrame.origin.y+screenFrame.size.height) ){
        newOrigin.y=screenFrame.origin.y + (screenFrame.size.height-windowFrame.size.height);
    }
    [self setFrameOrigin:newOrigin];
}

ここに画像の説明を入力してください

4

1 に答える 1

0

何が必要なのかまだわかりませんが、ボタンをクリックしてドラッグしたときにウィンドウがドラッグされないようにする場合は、ButtonStyle の mouseDown メソッドに [super mouseDown:theEvent]; という 1 行を追加します。クラスはそれを行うようです。

-(void)mouseDown:(NSEvent *)theEvent{
    switch (self.tag) {
        case 2:
            [self setImage:[NSImage imageNamed:@"closeDown.png"]];
            [super mouseDown:theEvent];
            break;
        default:
            break;
    }
}
于 2012-05-06T04:59:01.510 に答える