2017-07-15 10 views
5

プロジェクトにローカリゼーションがあります。リンゴの支払ボタンを追加すると、「セットアップペイ」ではなくIN_APP_PAYMENT_BUTTON_SETUPと表示されます。IN_APP_PAYMENT_BUTTON_SETUPPay

別のサンプルプロジェクトに追加すると、奇妙なことに同じコードがAppleの有料ボタンを表示します。 PKPaymentButtonの幅が128ピクセルよりも小さいサイズである場合

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は、「ペイ」のテキストが表示されます。

+0

ストーリーボードに支払いボタンを作成する場合は、 'initWithPaymentButtonType'を呼び出しません。プログラムでボタンを作成する場合は、ストーリーボードにボタンを追加しないで、ビュー階層にボタンを追加する必要があります。 – Paulw11

+0

私はストーリーボードと同じ問題が解決しないと私はストーリーボードファイルからボタンを使用する代わりに、コードのボタンを作成する場合と同じである場合から、私がボタンを持っている場合、代わりにinitWithPaymentButtonType' 'のbuttonWithType''使用する場合でも。 – Aditya

+0

ストーリーボードからボタンを作成する場合、コードは必要ありません。ストーリーボードにボタンタイプを設定する必要があります。コードを使って作成する場合は、ボタンを追加していることを確認してください。そのコードを表示 – Paulw11

答えて

2

最後に、この問題の背景にある理由がわかりました。

私のコメントで言及したように、私はこの問題の根本原因、すなわちローカリゼーションを見つけることができました。

デモアプリケーションで同じコードと環境を複製しようとしましたが、同じ動作を再現できませんでした。最後に、私は正確な原因は、私は私のアプリで使用しているBundleLocalizationのポイントをピンすることができました、私は、その場でアプリ内の言語を変更する必要があります。

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

はどうやら、これはlocalizationBundleを台無しに:

私はBundleLocalizationクラスの奥深くに掘ったよう

は、私はと呼ばれる方法があります NSBundle+Localizationと呼ばれるカテゴリの使用があることを把握することができました。だから、私はこれを回避するために、私のアプリでローカリゼーションを使い続けるために見つけなければなりません。

関連する問題