Firefox目前不是bounce the Downloads box in the dock when a download is finished,例如Safari,Chrome和Camino。
如果Firefox是用Objective C编写的,您可以非常轻松地添加执行此操作所需的one line of Objective C code。但事实并非如此。有没有办法从C ++调用这个Cocoa函数,以便它可以添加到Firefox中,以便所有Mac用户受益?
答案 0 :(得分:4)
我推荐的是,我必须为我正在处理的项目执行此操作,您可以使用一些obj-c ++文件来提供C / C ++ api和内部使用obj-c代码来触发doc闪烁。
基本上,您创建了一个标准的C / C ++头文件。在代码端,您将文件设为.m或.mm文件。
这样就可以将问题中的obj-c一行直接写入C / C ++函数,并且由于头文件是普通的C / C ++,因此非.mm文件不会出现编译错误在项目中。
这当然假设使用兼容两种语言的编译器(如GCC)进行编译。
这种方法的一个简单且(测试过的)例子是:
TriggerBounce.h
void TriggerBounce(char * filepath);
TriggerBounce.m
#import <Cocoa/Cocoa.h>
void TriggerBounce(char * filepath) {
NSString *pathToFile = [NSString stringWithCString:filepath encoding:NSUTF8StringEncoding];
[[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"com.apple.DownloadFileFinished" object:pathToFile];
}
答案 1 :(得分:3)
您可以使用Carbon API的 CFNotificationCenterPostNotification 。 碳是纯C。
文档和代码示例here。