我有2 NSButton
个,两个都是有点按下的瞬间按钮。我有一个主窗口,其他视图交换进出。这两个按钮位于主窗口自定义视图(下一个,上一个)中,这有助于浏览视图。
当我在下一个按钮的帮助下到达2视图时,我启用并显示上一个按钮。因此,如果我在此时按下前一个按钮,将交换第一个视图,并使前一个按钮透明并启用。
此时如果按下一个按钮导航到第二个视图,将换入第二个视图,并再次显示上一个按钮。但突出显示。我怎么能摆脱这个?
答案 0 :(得分:0)
我希望你会得到一些更好的答案,但我发现在这种情况下工作的一般技术是等待启用/禁用操作,直到事情已经为视图的新配置确定。
毕竟(如果我已经正确阅读了你的描述),你正在自己的动作处理程序中间隐藏一个按钮。
通过在主线程的运行循环的下一个(或更准确地说,稍后)调用上调用启用/禁用代码,可以轻松地推迟这个:
dispatch_async(dispatch_get_main_queue(), ^{
// Enable or disable your buttons here.
});
作为一种解决方案,它有点像黑客攻击,但另一方面,在重新配置导航UI之前等待主视图不再处于不稳定状态并不是一种糟糕的方法。