比较实用,翻译一下,留作日后参考,E文原文:http://developer.apple.com/library/mac/#qa/qa1544/_index.html。
获取Cocoa应用程序的本地化名称
Q:如何取得我的Cocoa应用程序的本地化名称?
A:应用程序名称有一些不同的版本,但都可以以NSString的形式获得。根据你的具体需要,可以用以下五种方法:
警告:请注意用户可以用Finder修改应用程序包。如果你想取得的是可能被用户修改过的应用程序名称,那就用第5种方法介绍的NSFileManager实现。
应用程序的别名(short name)由CFBundleName定义,常用在菜单或关于对话框中。
1:从main bundle中获取应用程序的简名(short name)。
NSString *appName = [[[NSBundle mainBundle] localizedInfoDictionary] objectForKey:(NSString *)kCFBundleNameKey];
应用程序的“显示名称”一般都比较长,用在Finder中显示bundle名字。
2:获取应用程序的显示名称。
NSString *appName = [[[NSBundle mainBundle] localizedInfoDictionary] objectForKey:@"CFBundleDisplayName"];
注意之前的这些方法都有可能返回空(nil)。如果这样的话,可以按照默认的关于对话框的做法解决,直接用进程名称本身。
3:获取进程名称。
NSString *appName = [[NSProcessInfo processInfo] processName];
从Mac OS X 10.6开始,可以用NSRunningApplication来获得本地化的应用程序名称。
4:使用NSRunningApplication获得本地化的应用程序名称。
NSString *appName = [[NSRunningApplication currentApplication] localizedName];
不过最通用的实现方式莫过于使用NSFileManager。displayNameAtPath:这个方法,在本地化名称存在的情况下返回这个名称,并在不存在的情况下返回bundle名称,甚至可以返回用户重命名应用程序后的名称。
5:从NSFileManager获得通用显示名称。
NSString *bundlePath = [[NSBundle mainBundle] bundlePath]; NSString *appName = [[NSFileManager defaultManager] displayNameAtPath: bundlePath];
博主友情提示:
如您在评论中需要提及如QQ号、电子邮件地址或其他隐私敏感信息,欢迎使用>>博主专用加密工具v3<<处理后发布,原文只有博主可以看到。