gpt4 book ai didi

macos - 检查 NSView 在其 NSWindow 中是否可见

转载 作者:行者123 更新时间:2023-12-03 17:46:41 30 4
gpt4 key购买 nike

我如何知道我的 NSView 在其 NSWindow 中是否可见?

它需要考虑滚动 super View 。

不需要知道NSWindow对用户是否可见。

考虑重叠 View “很高兴”,但不是必需的。

最佳答案

这应该可以。

@interface NSView (Visibility)
- (BOOL)visibleInWindow;
@end

@implementation NSView (Visibility)

- (BOOL)visibleInWindow
{
if (self.window == nil) {
return NO;
}

// Might have zero opacity.
if (self.alphaValue == 0 || self.hiddenOrHasHiddenAncestor) {
return NO;
}

// Might be clipped by an ancestor.
return !NSIsEmptyRect(self.visibleRect);
}

@end

注意:不考虑重叠 View 。

关于macos - 检查 NSView 在其 NSWindow 中是否可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54834444/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com