2012-02-16 12 views
1

キーボードをアクティブにしているときにユーザーが家を押したときにアプリケーションが開かれ、ビューフレームの境界が変わり、範囲外に移動している場合を除いて、すべてが正常に機能しているアプリケーションを開発しています。私の予想される結果は、キーボードが停止状態になるか、キーボードが非アクティブ状態でバックグラウンドからフォアグラウンドに戻ったときに同じ位置にとどまるはずです。ユーザーがホームボタンを押したときにキーボードを一時停止しますか?

私のシナリオを理解し、できるだけ早く返信してくれることを願っています。

ありがとうございました。

答えて

1

私の質問に対する解決策を見つけました。人々が私のソリューションを使用できることを願っています。以下は、私が行ったコードです

あなたのRootViewControllerファイルに以下のコード行を追加してください(つまり、あなたがAPPを開いたときに最初に表示されるビュー)。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receivedNotification:) name:UIApplicationDidEnterBackgroundNotification object:nil]; 

そして、私は、ありがとう、それはいくつかの体を助け願ってい

- (void) receivedNotification:(NSNotification *) notification 
{ 
if ([username isFirstResponder]) 
{ 
    [username resignFirstResponder]; 
} 
else if ([password isFirstResponder]) 
{ 
    [password resignFirstResponder]; 
} 
} 

以下のようにプライベートメソッドを追加します。

さらなる支援はあなたの提案のためのおかげでも、私はときに、ユーザープレスホームボタン、バックグラウンド/フォアグラウンド動作に実行されますが、どのようにこれらの方法でテキストフィールドを辞任する、することができますしてくださいことを知って言及リンク、

+1

変更 " - (void)receivedNotification:(NSNotification *)通知" - (void)applicationDidEnterBackground: (UIApplication *)アプリケーション "オブザーバは不要です – valexa

1

アプリデリゲートのメソッド

- (void)applicationDidEnterBackground:(UIApplication *)application 

を使用すると、ホームボタンを押したときにこのメソッドが発射されています。 このメソッドで必要な変更(textField resignFirstResponder)を行うと、うまくいくはずです。

EDITは、ここにあなたがあなたのテキストフィールドにも私はあなたを見つける必要があります@valexaに同意

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    [myClassObj performWhenHomeBtnprssed]; 
} 

-(void)performWhenHomeBtnprssed 
{ 
[MytextField resignFirstResponder]; 
} 

その後、メソッドを作成したクラスのコード

です問題の根本原因

+0

を参照してください。コード例やスニペットを挙げてください。 –

0

ソフトウェアの開発では、エフェクトをパッチするよりも根本的な原因を解決する方が良いでしょう。ビューの配置に問題があり、フォアグラウンド/バックグラウンドのサイクリングがビューの配置に影響しないように注意してください。

+0

アプリがバックグラウンド/フォアグラウンドに移動したときに、ビューをどのように配置する必要がありますか?あなたは私に例を与えてくれますか?あなたの提案をありがとう。 –

+0

適切に™...彼らがフォアグラウンド/バックグラウンドサイクリングの結果として再配置すると、何か間違っている場合 – valexa