自分のテキストフィールドの代理人をselfに設定しましたが、その代理人を.hに追加しましたが、問題があります。私はキーボードを非表示にしたいをクリックすると、ビュー内のテキストフィールド以外にが表示されます。これは可能ですか?もしそうなら、どうすればいいのですか?キーボードの問題を解消する目的 - 目的C
答えて
いくつかは、次のように...「ハッキング」:
- (void)textFieldDidBeginEditing:(UITextField *)textField{
//glass is a class's property
if(glass){
self.glass=nil;
}
glass=[[UIButton alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; //put the size you want.
[glass addTarget:self action:@selector(hideGlass) forControlEvents:UIControlEventTouchUpInside];
[self.view insertSubview:glass belowSubview:textField];
}
-(void)hideGlass{
//remove your glass.
[glass removeFromSuperview];
//your textField resigns first responder.
if([myTextField canResignFirstResponder]){
[myTextField resignFirstResponder];
}
}
だから、基本的に、あなたは何をすべきか、右のあなたのTextFieldを怒鳴るダミーのボタンを追加することです。ですから、あなたのtextFieldを除いて他のものに触れると、彼はあなたのtextField resignFirstResponderを作成し、自分自身をビューから削除します。
編集1(tweek)あなたはこの交換する必要があります:私は、キーボードを非表示にする簡単な方法を発見し、あなたがクリックしたときにそれが動作
if(glass){
[glass release];
glass=nil;
}
あなたは、次のデリゲートメソッドを実装する必要があります。
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
私はこれらのメソッドを実装しましたが、それでもキーボードは隠されません。私はやっている: theTextField.delegate =自己; VDLと.h UITextFieldDelegate で、IBでテキストフィールドをクリックし、デリゲート接続をドラッグしてファイル所有者に接続します。 –
あなたがUITextField
のためにIBOutletを持っている場合は、あなたが[textField resignFirstResponder];
を使用してキーボードを閉じることができます。つまり、ビュー上の他のすべてに対してイベントリスナーを実装する必要があります。
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[textField resignFirstResponder];
}
あなたが任意のボタンまたはサブビューを持っている場合は、あなたがする必要があります:あなたは、ユーザーがビューの背景をタップしたときにキーボードが非表示にしたい場合は、ビューコントローラの実装でタッチイベントを介して行うことができます個々のタッチイベントやアクションを実装することもできます。あなたが行うことができます
:このため
if(glass){
self.glass=nil;
}
を画面の方法。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
// endEditing: This method looks at the current view and its subview hierarchy for the text field that is currently the first responder.
// If it finds one, it asks that text field to resign as first responder
[[self view] endEditing:TRUE];
}
- 1. 目的Cメモリリークの問題
- 2. 目的C:ジェスチャー問題
- 3. 引数]問題目的-C
- 4. 目的のメモリの問題C
- 5. 目的関数cのシングルトンオブジェクトメモリの問題
- 6. 目的C:クラスメソッドでのメモリリークの問題
- 7. 目的Cメモリ管理の問題
- 8. if/elseブロック目的-cの問題iPhone
- 9. 再帰的な目的-c voidメソッドの問題
- 10. 目的C - OS X - NSShadowをNSImageViewに追加する問題
- 11. XML項目をリストボックスに動的に追加する問題、C#
- 12. 目的C + RESTKit:オブジェクトの取得に関する問題
- 13. 目的関数-cのシャドウイングに関する問題
- 14. 目的のC
- 15. laravel目的のリダイレクトの問題
- 16. 目的のCの解析ヒザック
- 17. 目的のCの解析エラー
- 18. キーボードイベント目的C
- 19. 目的C:スコアカウンター
- 20. 目的C IBOutlets
- 21. 目的C:ドロップエリア
- 22. 目的Cプロトコル
- 23. NSXMLParserDelegate目的c
- 24. 目的Cタッチイベントロック
- 25. マルチスレッド目的-c
- 26. 目的C tip?
- 27. 目的Cソケットプログラミング
- 28. 目的C、メモリリーク?
- 29. 目的cサブストリング
- 30. 目的C init
コードをお寄せいただきありがとうございますが、グラスとは何ですか?クラスのプロパティではどういう意味ですか? –
GlassはUIButtonです。 .hファイルに以下を追加してください:UIButton * glass; @プロパティ(非原子、保持)UIButton * glass;ガラスを@合成するためにあなたの.mを忘れないでください。 – Peres
いいですね。私はUITouchがオブジェクトを持っていることを知っています。そのプロパティを使ってコードを簡単にすることができますか? –