"Setup Pay" 文本显示为 IN_APP_PAYMENT_BUTTON_SETUP Pay
"Setup Pay" text appearing as IN_APP_PAYMENT_BUTTON_SETUP Pay
我在我的项目中进行了本地化,当我添加 apple pay 按钮时它显示 IN_APP_PAYMENT_BUTTON_SETUP
而不是 "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 会显示“ 支付”文本。
最后,我找到了整个问题背后的原因。
正如我在评论中提到的,我找到了这个问题的根本原因,即本地化。
我试图在演示应用程序中复制相同的代码和环境,但无法重现相同的行为。最后我能够指出我在我的应用程序中使用的 BundleLocalization
的确切原因,因为我需要即时更改应用程序内的语言。
当我深入研究 BundleLocalization
class 时,我发现有一个名为 NSBundle+Localization
的类别使用,它有一个名为的方法:
-(NSString*) customLocaLizedStringForKey:(NSString *)key value:(NSString *)value table:(NSString *)tableName
显然,这弄乱了 localizationBundle
。因此,我必须为此找到一个解决方法,以便继续在我的应用程序中使用本地化。
我在我的项目中进行了本地化,当我添加 apple pay 按钮时它显示 IN_APP_PAYMENT_BUTTON_SETUP
而不是 "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 会显示“ 支付”文本。
最后,我找到了整个问题背后的原因。
正如我在评论中提到的,我找到了这个问题的根本原因,即本地化。
我试图在演示应用程序中复制相同的代码和环境,但无法重现相同的行为。最后我能够指出我在我的应用程序中使用的 BundleLocalization
的确切原因,因为我需要即时更改应用程序内的语言。
当我深入研究 BundleLocalization
class 时,我发现有一个名为 NSBundle+Localization
的类别使用,它有一个名为的方法:
-(NSString*) customLocaLizedStringForKey:(NSString *)key value:(NSString *)value table:(NSString *)tableName
显然,这弄乱了 localizationBundle
。因此,我必须为此找到一个解决方法,以便继续在我的应用程序中使用本地化。