Macos NSButton在设置透明:否设置启用:是后高亮显示
我有两个Macos NSButton在设置透明:否设置启用:是后高亮显示,macos,cocoa,cocoa-bindings,Macos,Cocoa,Cocoa Bindings,我有两个NSButtons,它们都是带边框的瞬时推入式按钮。我有一个主窗口,其他视图可以在其中交换。这两个按钮位于主窗口“自定义视图”(下一个、上一个)中,有助于在视图中导航 当我在“下一步”按钮的帮助下到达2视图时,我会启用并显示上一个按钮。因此,如果我在这一点上按下“上一个”按钮,第一个视图将被交换,我将使“上一个”按钮透明并启用 此时,如果按“下一步”按钮导航到第二个视图,则第二个视图将被切换,并再次显示“上一个”按钮。但它在这里突出显示。我怎样才能解决这个问题呢?我希望您能得到一些更好的
NSButton
s,它们都是带边框的瞬时推入式按钮。我有一个主窗口,其他视图可以在其中交换。这两个按钮位于主窗口“自定义视图”(下一个、上一个)中,有助于在视图中导航
当我在“下一步”按钮的帮助下到达2视图时,我会启用并显示上一个按钮。因此,如果我在这一点上按下“上一个”按钮,第一个视图将被交换,我将使“上一个”按钮透明并启用
此时,如果按“下一步”按钮导航到第二个视图,则第二个视图将被切换,并再次显示“上一个”按钮。但它在这里突出显示。我怎样才能解决这个问题呢?我希望您能得到一些更好的答案,但我发现在这种情况下,一种通用的方法是等待启用/禁用操作,直到视图的新配置解决为止
毕竟(如果我已经正确地阅读了你的描述),你在自己的动作处理器中间隐藏了一个按钮。 通过在主线程的运行循环的下一次调用(或者更准确地说,在以后的调用)上分派启用/禁用代码,可以很容易地实现延迟:
dispatch_async(dispatch_get_main_queue(), ^{
// Enable or disable your buttons here.
});
作为一种解决方案,它有点像黑客,但另一方面,在重新配置导航UI之前,等待主视图不再处于变化状态,这并不是一种坏方法