2012-11-08 35 views
0

我有一個圖像編輯器窗口。拖動事件之後,我將窗口縮小到左下角,縮小了縮小後的窗口。在縮圖上方,我將光標改爲operationNotAllowedCursorNSWindow直到點擊纔會響應

問題是:NSWindow不會在第一個draggingEntered(在第二個以及更多的一切正常之後)之後更改縮圖上的光標。此外,在縮小後的NSWindow在點擊任何區域之前不會收到任何事件。

代碼(在NSWindow的子類)最小化窗口:

-(void)minimize 
{   
    const double miniSize = 240; 
    MSDraggingMiniature *mini = [[MSDraggingMiniature alloc] init]; 
    [mini setMiniImage:[[MSScreenMaker getInstance] makeEditorScreen:(int)[self windowNumber]]]; 

    _mainContentView = self.contentView; 
    _oldFrame = [self frame]; 
    [self setStyleMask:NSBorderlessWindowMask]; 
    self.contentView = mini; 
    NSRect drect = [[self screen] frame]; 
    double width, height; 
    if (self.frame.size.width < self.frame.size.height) { 
     height = miniSize; 
     width = self.frame.size.width/self.frame.size.height * miniSize; 
    } else { 
     width = miniSize; 
     height = self.frame.size.height/self.frame.size.width * miniSize; 
    } 
    _anima = MSEditorResizeAnimationMinimize; 
    [self setFrame:NSMakeRect(drect.origin.x + 20, drect.origin.y + 20 , width, height) display:YES animate:YES]; 
} 
-(void)deminimize 
{ 
    self.contentView = _mainContentView; 
    [self setStyleMask:NSTitledWindowMask]; 
    _anima = MSEditorResizeAnimationDeminimize; 
    [self setFrame:_oldFrame display:YES animate:YES]; 

    [self makeKeyWindow]; 
    [self makeMainWindow]; 
} 

回答

0

經過大量變種我找到了答案。看起來這個區域,就像拖動源一樣,只能是NSView,而不是我所擁有的NSButton的子類。

我重寫了我的Draging Source類 - 現在一切正常。

相關問題