2009-07-30 57 views
0

我正在开发可可中的应用程序。现在我面临一个关键问题。我无法在NSView中隐藏控件NSButton。我用下面的代码无法在NSView中隐藏控件

[btn setHidden:YES] 

但这个“btn”控件没有变得隐藏。我用下面的代码检查按钮是否隐藏

[btn isHidden] 

但是这个返回YES。同时我也不能在展示这个视图时向NSTextfield发送一个值。

在此先感谢。

回答

1

请尽量隐藏按钮后,运行runloop一次:

[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]]; 
+0

谢谢,这对我来说是一个NSProgressIndicator,它拒绝隐藏,而不是1秒,我用0.02似乎清除它。不知道为什么displayIfNeeded,setNeedsDisplay等没有强制它。它通常没有这个隐藏在我的应用程序的其他地方。 – GeoffCoope 2016-07-25 21:07:02

1

不知道其他人是怎么回事,在应用程序很难知道为什么会不会作出按钮隐藏。

您是否阻止了主事件循环,导致更新事件没有得到处理?通常这不是一件好事。

你可以做的强制立即更新的一件事是在按钮或其父视图或窗口上调用displayIfNeeded。这应该会导致视图重绘。这适合作为验证按钮将绘制(或不绘制)其正确状态的实验。如果调用displayIfNeeded确实会导致它消失,那么您将需要确定为什么更新事件没有得到正确处理。