首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSPrintInfo localizedPaperName,如何在ios中获取纸张名称?

NSPrintInfo localizedPaperName,如何在ios中获取纸张名称?
EN

Stack Overflow用户
提问于 2014-03-13 13:33:57
回答 2查看 346关注 0票数 0

在我的mac上,我使用NSPrintInfo和NSPrintInfo localizedPaperName来确定默认的纸张大小是“美国字母”还是"A4“。

NSPrintInfo * printInfo = NSPrintInfo sharedPrintInfo;printInfo localizedPaperName

如何让iOS设备告诉我,默认的纸张大小是“美国字母”还是"A4"?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-14 11:37:40

由于没有人提出更好的方法,我查了一下使用美国字母的国家,然后开始根据这个列表检查,得到了NSLocaleCountryCode

代码语言:javascript
复制
 [[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode] isEqualToString:@"US"]||
        [[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode] isEqualToString:@"CA"]||
        [[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode] isEqualToString:@"MX"]||
        [[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode] isEqualToString:@"CU"]||
        [[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode] isEqualToString:@"DO"]||
        [[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode] isEqualToString:@"GT"]||
        [[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode] isEqualToString:@"CR"]||
        [[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode] isEqualToString:@"SV"]||
        [[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode] isEqualToString:@"HN"]||
        [[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode] isEqualToString:@"BO"]||
        [[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode] isEqualToString:@"CO"]||
        [[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode] isEqualToString:@"VE"]||
        [[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode] isEqualToString:@"PH"]||
        [[[NSLocale currentLocale] objectForKey:NSLocaleCountryCode] isEqualToString:@"CL"]
票数 3
EN

Stack Overflow用户

发布于 2018-04-11 11:03:41

我使用了类似@spacecash21 21建议的类似的固定列表方法,基于这张地图:size.svg

代码语言:javascript
复制
+ (NSString*)defaultPaperName
{
    // as it looks mostly US and Canada and the Philippines are actually using the US Letter format, usage of the metric system is no clue
    // https://en.wikipedia.org/wiki/Paper_size#/media/File:Prevalent_default_paper_size.svg
    static NSSet* letterCountries;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        letterCountries = [NSSet setWithArray:@[@"US", @"CA", @"MX", @"CU", @"DO", @"GT", @"CR", @"SV", @"HN", @"BO", @"CO", @"VE", @"PH", @"CL"]];
    });

    NSString* countryCode = NSLocale.currentLocale.countryCode;
    if ([letterCountries containsObject:countryCode.uppercaseString])
        return @"na-letter";

    return @"iso-a4";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22380268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档