2017-07-15 64 views
5

我定位在我的项目,当我添加它显示IN_APP_PAYMENT_BUTTON_SETUP,而不是“设置Pay”苹果支付按钮。当添加到不同的样本项目“设置Pay”文本显示为IN_APP_PAYMENT_BUTTON_SETUPPay

奇怪的是相同的代码显示正确苹果支付按钮。

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

如果要创建在你的故事板付款按钮,然后你不叫'initWithPaymentButtonType'。如果要以编程方式创建按钮,则不要将其添加到故事板中,并且必须确保将该按钮添加到视图层次结构中。 – Paulw11

+0

即使我使用'buttonWithType'而不是'initWithPaymentButtonType',当我有故事板中的按钮时,同样的问题仍然存在,并且如果我在代码中创建按钮而不是使用故事板文件中的按钮,情况也是如此。 – Aditya

+0

如果您从故事板创建按钮,则不需要任何代码;您必须在故事板中设置按钮类型。如果您使用代码创建,请确保您添加按钮;显示代码 – Paulw11

回答

2

最后,我发现这背后的整个问题的原因。

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

我试图复制在演示应用程序相同的代码和环境,但未能重现相同的行为。最后,我能够指出我在应用中使用的确切原因,即BundleLocalization,因为我需要在应用中随时更改语言。

正如我在BundleLocalization类深处挖,我是能够弄清楚,有一个叫NSBundle+Localization一类利用其有一个方法叫:

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

显然,这打乱了localizationBundle。所以,我必须为此找到解决方法,才能继续在我的应用中使用本地化。