我在项目中有本地化,当我添加苹果付款按钮时,它显示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会显示“支付”文本。
答案 0 :(得分:3)
最后,我找到了整个问题背后的原因。
正如我在评论中提到的,我能够找到这个问题的根本原因,即本地化。
我尝试在演示应用中复制相同的代码和环境,但无法重现相同的行为。最后,我能够确定我在我的应用中使用的确切原因BundleLocalization
,因为我需要动态更改应用内的语言。
当我深入挖掘BundleLocalization
类时,我能够发现有一个名为NSBundle+Localization
的类别用法,它有一个名为:
-(NSString*) customLocaLizedStringForKey:(NSString *)key value:(NSString *)value table:(NSString *)tableName
显然,这会弄乱localizationBundle
。因此,我必须为此找到解决方法,以便继续在我的应用中使用本地化。