“SetupPay”文本显示为IN_APP_PAYMENT_BUTTON_SETUPPay

时间:2017-07-15 07:49:50

标签: objective-c ios10 applepay

我在项目中有本地化,当我添加苹果付款按钮时,它显示IN_APP_PAYMENT_BUTTON_SETUP而不是“设置Pay”。

奇怪的是,当添加到不同的示例项目时,相同的代码会显示正确的Apple付款按钮。

if ([PKPaymentAuthorizationViewController canMakePayments]) {



        if ([PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkVisa, PKPaymentNetworkMasterCard, PKPaymentNetworkAmex]]) {

            //Standard code
        }
        else{

            UIButton *btnApplePay = [PKPaymentButton buttonWithType:PKPaymentButtonTypeSetUp style:PKPaymentButtonStyleWhiteOutline];
            [btnApplePay setFrame:CGRectMake(10, 10, 294, 50)];
            [self.view addSubview:btnApplePay];


        }
    }

此外,如果PKPaymentButton的宽度小于128像素,则PKPaymentButton会显示“支付”文本。

1 个答案:

答案 0 :(得分:3)

最后,我找到了整个问题背后的原因。

正如我在评论中提到的,我能够找到这个问题的根本原因,即本地化。

我尝试在演示应用中复制相同的代码和环境,但无法重现相同的行为。最后,我能够确定我在我的应用中使用的确切原因BundleLocalization,因为我需要动态更改应用内的语言。

当我深入挖掘BundleLocalization类时,我能够发现有一个名为NSBundle+Localization的类别用法,它有一个名为:

的方法

-(NSString*) customLocaLizedStringForKey:(NSString *)key value:(NSString *)value table:(NSString *)tableName

显然,这会弄乱localizationBundle。因此,我必须为此找到解决方法,以便继续在我的应用中使用本地化。