objective-c - 如何调暗/禁用当前 View ?

标签 objective-c macos cocoa nsview

是否可以调暗 cocoa 中的当前 View ?在某个操作中,我想让屏幕变暗一点并阻止用户与屏幕交互。

最佳答案

根据 @Lord Zsolt 给出的想法,同样可以在 OS X 中实现:

当您想要使窗口变暗时,添加以下代码。

NSView *transparentBlackView = [[NSView alloc] initWithFrame:[[yourwindow contentView] frame]];

CALayer *viewLayer = [CALayer layer];
[viewLayer setBackgroundColor:CGColorCreateGenericRGB(0.0, 0.0, 0.0, 0.4)]; //RGB plus Alpha Channel
[transparentBlackView setWantsLayer:YES]; 
[transparentBlackView setLayer:viewLayer];

[[yourwindow contentView] addSubview:transparentBlackView];

另外不要忘记添加 QuartzCore.framework到你的项目。并使用 #import<QuartzCore/QuartzCore.h> 将其导入您的类中

关于objective-c - 如何调暗/禁用当前 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19926143/

相关文章:

iphone - 三20 : how to pass a class of objects between 2 views

objective-c - 遍历特定类型的所有 subview

ios - 当我在其上滚动并在其底部完成时,将单元格添加到我的 tableView

ios - NSDateFormatter dateFromString 1981-04-01

cocoa - 如何安全地强制关闭 Mac

ios - 对象计数 (1116) 与键计数 (1117) 不同

objective-c - OSX NSTableView insertRowAtIndexes

ruby-on-rails - Rails 安装错误 - 无法构建 gem native 扩展

c++ - Leptonica 与 Xcode 框架冲突

macos - 将Ctrl-C发送到LLDB中的应用