gpt4 book ai didi

macos - 如何让 NSWindow 看起来被禁用并且不响应用户输入?

转载 作者:行者123 更新时间:2023-12-03 16:14:31 25 4
gpt4 key购买 nike

我不确定是否有类似的系统级功能。不管怎样,有没有办法让 NSWindow 看起来被禁用并且不响应用户输入?

最佳答案

我认为 mdominick 的答案不正确。因为我只想禁用 NSTextFields 和 NSButtons,所以我想出了这个:

for (NSView *item in [self.window.contentView subviews])
{
if ([item isKindOfClass:[NSTextField class]] || [item isKindOfClass:[NSButton class]])
{
[(id)item setEnabled:NO];
}
}

编辑

在开发新应用程序时,NSWindow 子类中的此方法非常方便

- (void)setEnabled:(BOOL)enabled
{
[self setEnabled:enabled view:self.window.contentView];
}

- (void)setEnabled:(BOOL)enabled view:(id)view
{
if ([view isHidden]) return;

for (NSView *item in [view subviews])
{
if ([item isKindOfClass:[NSProgressIndicator class]])
{
NSProgressIndicator *pI = (NSProgressIndicator *)item;
[pI setHidden:enabled];
if (!enabled) [pI startAnimation:nil];
if (enabled) [pI stopAnimation:nil];
}
if ([item isKindOfClass:[NSTextField class]] || [item isKindOfClass:[NSButton class]] || [item isKindOfClass:[NSTextView class]])
{
[(id)item setEnabled:enabled];
continue;
}
if (item.subviews.count)
{
[self setEnabled:enabled view:item];
}
}
}

关于macos - 如何让 NSWindow 看起来被禁用并且不响应用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12181902/

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