Tôi muốn nhân rộng nền của ngăn xếp ngăn xếp trong chế độ lưới và danh sách. Nền là mờ màu đen với một hiệu ứng mờ ảo:Áp dụng bộ lọc nền CIFilter khi cửa sổ máy chủ trong suốt
Vấn đề là [CALayer backgroundFilters] chỉ áp dụng cho nội dung trong cửa sổ, các bộ lọc không được áp dụng cho nội dung trong cửa sổ khác. Đây là mã của tôi:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
//make window transparent
self.window.backgroundColor = [NSColor clearColor];
[self.window setOpaque:NO];
[self.window setHasShadow:NO];
[self.window setStyleMask:NSBorderlessWindowMask];
//make the content view layer hosting
CALayer *rootLayer = [CALayer layer];
[[self.window contentView] setLayer:rootLayer];
[[self.window contentView] setWantsLayer:YES];
//blur the background contents - NOT WORKING!
[rootLayer setBackgroundColor:CGColorCreateGenericGray(0.0, .716)];
CIFilter *blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
[blurFilter setDefaults];
[rootLayer setBackgroundFilters:[NSArray arrayWithObject: blurFilter]];
}
Tôi không thể nghĩ cách khác để đạt được hiệu ứng này. (Tôi đã xem Dịch vụ Hiển thị để xem có bất kỳ chức năng hữu ích nào nhưng tôi không thể thấy bất kỳ chức năng nào.)
Bất kỳ ý tưởng nào?
Tuyệt vời, cảm ơn bạn rất nhiều! –
FWIW, thao tác này không còn xuất hiện ở Yosemite nữa. :-(CGSNewCIFilterByName() trả về kCGErrorNotImplemented –