是否有正确的方法来确定在当前视图层次结构中是否实际绘制了NSView
,考虑如下情况:
遗憾的是,例如-isHidden
和-isHiddenOrHasHiddenAncestor
未设置视图会因标签视图切换到另一个标签而消失。
这样做的原因是我有一个附加的子窗口,我希望能够在没有绘制附加到它的视图时隐藏它。
答案 0 :(得分:3)
我找到了一个告诉它是否可见的技巧,但它需要子类化。它通过在2个事件上切换ivar来工作。
- (void)discardCursorRects {
isDrawn_ = NO;
[super discardCursorRects];
}
- (void)resetCursorRects {
isDrawn_ = YES;
[super resetCursorRects];
}
答案 1 :(得分:0)
它是否(或何时)被绘制的应该是“没有你的业务”,并且与它是否在屏幕上无关。使用NSView的-viewDidMoveToSuperview或-viewDidMoveToWindow来管理它。