首页 > 解决方案 > 以编程方式禁用 NSButton 删除边框

问题描述

我有这个带有两个NSButton和一个的侧边栏NSTextField。链接到文本字段的操作禁用两个按钮,运行算法,然后再次启用它们。第一个按钮调用相同的操作。

侧边栏图片

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

无边框按钮

为什么会这样?

代码 :

- (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];
}

标签: macoscocoanstextfieldnsbutton

解决方案


推荐阅读