performClose:在无边框窗口上?

Kuk*_*osk 5 xcode cocoa objective-c nswindow

有没有办法让方法执行关闭:当我使用NSBorderlessWindowMask时工作?我必须覆盖什么方法?(如果它是可能的)

Kuk*_*osk 10

我已经覆盖了一些方法,并且它有效.现在我想知道的是,如果我没有从糟糕的方法中接受它:)

- (BOOL)validateMenuItem:(NSMenuItem *)menuItem
{
    return ([menuItem action] == @selector(performClose:) || [menuItem action] == @selector(performZoom:) || [menuItem action] == @selector(performMiniaturize:)) ? YES : [super validateMenuItem:menuItem];
}

- (BOOL)windowShouldClose:(id)sender
{
    return YES;
}

- (void)performClose:(id)sender
{
    if([[self delegate] respondsToSelector:@selector(windowShouldClose:)])
    {
        if(![[self delegate] windowShouldClose:self]) return;
    }
    else if([self respondsToSelector:@selector(windowShouldClose:)])
    {
        if(![self windowShouldClose:self]) return;
    }

    [self close];
}

- (void)performMiniaturize:(id)sender
{
    [self miniaturize:self];
}

- (void)performZoom:(id)sender
{
    [self zoom:self];
}
Run Code Online (Sandbox Code Playgroud)