2017-09-09 12 views
3

私の速いiOSアプリには、キーボードが表示されているアクティブなテキストフィールドがあります。 毎回ユーザーがキーボードのリターンキーをタップする、私はこれが過剰に聞こえるかもしれませんが、ユーザーがレビューを与えた後、上記のステートメントは、私は私のアプローチが正しいことだと思うので、何もしませんSKStoreReviewControllerのボタンはキーボードの下に隠されています

SKStoreReviewController.requestReview() 

を呼び出します。

小さいスクリーンデバイス(iPhone 5など)では、表示されたSKStoreReviewControllerのボタンがキーボードの下に隠れてしまうという問題があります。

したがって、ユーザーはSKStoreReviewControllerを却下することができないため、つまずくことがあります。 ユーザーにキーボードの非表示ボタンを追加したくありません。

SKStoreReviewControllerが表示されたときに、プログラムでキーボードを非表示にすることはできますか?

答えて

1

表示されているかどうかを判断する方法はありません。

SKStoreReviewControllerhereのドキュメントは、requestReview()関数を呼び出すときにのみ表示されます。

しかし、深く掘り下げたい場合は、のデバッグビュー階層がリクエストを表示しているように見える次のスクリーンショットを提供します。

enter image description here

これがあなたに伝え何を、あなたは画面が提示されている場合占うための試みで、このようなpresentedViewControllerなどのプロパティ経由に掘り下げるしようとすることができるものがないということです。

通常、UIAlertControllerまたはそのようなUI要素を提示している場合は、関連するプロパティにアクセスして何が表示されているかを知ることができることを示すUI要素が重なって表示されます。このクラスでは、それが提供されていないので、あなたのアプリは何が起こっているのか分かりません。

次のスクリーンショットは、あなたが画面上に複数の要素を持っているとき、ビュー階層がどのように見えるかを示しています

enter image description here

Appleは、クラスのドキュメントでを暗示として、あなたが提示する独自のロジックを開発する必要がありますそれはあなたが現在経験している問題を提示しないときに、私はここにこの質問答え

+0

詳細な回答ありがとうございます – Kashif

0

Mechanism to detect display of iOS 10.3 app rating dialog?

をセットアップできレーティングビューが表示されたときに、キーボードを閉じ、評価ビューが却下されたときに、再びキーボードを有効にするには、テキストフィールド:

- (void)windowDidBecomeVisibleNotification:(NSNotification *)notification 
{ 
    if([notification.object class] == [MonitorObject class]) 
    { 
     NSLog(@"Review Window shown"); 
     [self.enterCodeView resignFirstResponder]; 
    } 
} 

- (void)windowDidBecomeHiddenNotification:(NSNotification *)notification 
{ 
    if([notification.object class] == [MonitorObject class]) 
    { 
     NSLog(@"Review Window hidden!"); 
     [self.enterCodeView becomeFirstResponder]; 
    } 
} 
関連する問題