如何在Mac(Cocoa)应用程序中实现夜间模式?

时间:2016-05-21 06:48:52

标签: objective-c macos cocoa osx-yosemite osx-elcapitan

我是新手在Mac上创建应用程序(Cocoa)。

有人可以指点我如何在Mac应用程序中创建夜间模式功能吗?

我非常感谢你在这方面的帮助。

谢谢!

1 个答案:

答案 0 :(得分:2)

要实现夜间模式滤镜,您需要减少蓝光曝光(阳光中含有蓝光,让我们保持清醒和警觉)。

在整个应用中删除蓝灯的最简单方法是在您的视图中使用内容过滤器,在我的情况下,我使用棕褐色调。

选择您的视图并转到"查看效果检查器"

View Effects inspector

在内容过滤器中,点击" +"图标并添加并滚动到"色彩效果" /"棕褐色调"

Content Filters

您可以调整棕褐色调或选择不同颜色的滤镜以尝试达到预期效果,但请记住主要目标是去除蓝光(强度为1的棕褐色调就足够了)。

before after

如果您想以编程方式创建过滤器:

#import "ViewController.h"
#import <CoreImage/CIFilter.h>

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    CIFilter * sepiaTone = [CIFilter filterWithName:@"CISepiaTone" keysAndValues:@"inputIntensity", @1.0, nil];
    self.view.contentFilters = [NSArray arrayWithObject:sepiaTone];

}

Apple参考:Core Image Filters Reference

注意:有些应用会在所有应用视图上添加红色色调层,但您可能会遇到一些用户互动问题。