2017-07-15 65 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。所以,我必須爲此找到解決方法,才能繼續在我的應用中使用本地化。