以编程方式禁用NSButton删除边框

时间:2018-06-19 18:37:31

标签: macos cocoa nstextfield nsbutton

我在工具条上有两个NSButton和一个NSTextField。链接到文本字段的操作将禁用这​​两个按钮,运行算法,然后再次启用它们。第一个按钮调用相同的操作。

Sidebar Image

如果我单击第一个按钮,一切正常。如果在编辑文本字段时按Enter键,则该操作可以正常运行,但是两个按钮被禁用 ,它们的边框似乎已被删除。操作完成后,它们将显示为纯白色文本。它们看起来不再像按钮了。

Borderless Buttons

为什么会这样?

代码:

- (IBAction)run:(id)sender {
    [self setControlsEnabled:false]; // Disable controls
    dispatch_async(dispatch_get_global_queue(0, 0), ^{
        [self runAlgorithm];
        dispatch_async(dispatch_get_main_queue(), ^{
            [self setControlsEnabled:true];
        });
    });
}

- (void)setControlsEnabled:(BOOL)enabled {
    [generateButton setEnabled:enabled];
    [solveButton setEnabled:enabled];
}

0 个答案:

没有答案