私はどこでも探してきました...これはよくある質問だと思うので、正しい検索語を使用していない可能性があります。
ユーザーがキーボードを下げるボタンをクリックしてキーボードを閉じたときに処理できるイベントはありますか。
uitextfield が firstresponder になったときにビューを上に移動しますが、このボタンがタップされたときにもう一度下に移動したい
私はどこでも探してきました...これはよくある質問だと思うので、正しい検索語を使用していない可能性があります。
ユーザーがキーボードを下げるボタンをクリックしてキーボードを閉じたときに処理できるイベントはありますか。
uitextfield が firstresponder になったときにビューを上に移動しますが、このボタンがタップされたときにもう一度下に移動したい
通知を使用してみてください。それをあなたに追加してくださいviewDidLoad
:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
次に、というメソッドを作成しますkeyboardWillHide
。
- (void)keyboardWillHide:(NSNotification *)notification {
//do whatever you need
}
それが役に立てば幸い
NSNotificationCenterを使用すると、キーボードイベントを取得できます。viewWillAppearでキーボードイベントに登録でき、viewWillDisapperで登録を解除することを忘れないでください。
ここでは2つの通知を使用します。
UIKeyboardDidHideNotificationアップルドキュメント
あなたはこのようなことをすることができます:
//イベントに登録します
[[NSNotificationCenterdefaultCenter]addObserver:selfセレクター:@selector(keyboardDidShow :) name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:selfセレクター:@selector(keyboardDidHide :)名前:UIKeyboardDidHideNotificationオブジェクト:nil];
//コンテンツサイズを設定scrollview.contentSize=CGSizeMake(SCROLLVIEW_CONTENT_WIDTH、SCROLLVIEW_CONTENT_HEIGHT); //たとえば(320,460)
//最初はキーボードは非表示ですkeyboardVisible=NO; //in.h宣言BOOLkeyboardVisible; }
-(void)viewWillDisappear:(BOOL)animated {
NSLog(@ "キーボードイベントの登録解除");
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
-(void)keyboardDidShow:(NSNotification *)notif {
NSLog(@ "Keyboard is visible");
//キーボードが表示されている場合は、
if(keyboardVisible){
NSLog(@ "キーボードは既に表示されています。通知を無視します。");を返します。
戻る;
}
// Get the size of the keyboard.
NSDictionary* info = [notif userInfo];
NSValue* aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey];
CGSize keyboardSize = [aValue CGRectValue].size;
// Save the current location so we can restore
// when keyboard is dismissed
offset = scrollview.contentOffset; //in .h declare CGPoint offset and UIScrollView *scrollview.;
// Resize the scroll view to make room for the keyboard
CGRect viewFrame = scrollview.frame;
viewFrame.size.height -= keyboardSize.height;
scrollview.frame = viewFrame;
CGRect textFieldRect = [activeField frame];//in .h UITextField *activeField;
textFieldRect.origin.y += 10;
[scrollview scrollRectToVisible:textFieldRect animated:YES];
// Keyboard is now visible
keyboardVisible = YES;
}
-(void)keyboardDidHide:(NSNotification *)notif {
//キーボードはすでに表示されています
かif(!keyboardVisible){
NSLog(@ "キーボードはすでに非表示になっています。通知を無視します。");
戻る;
}
// Reset the frame scroll view to its original value
scrollview.frame = CGRectMake(0, 0, SCROLLVIEW_CONTENT_WIDTH, SCROLLVIEW_CONTENT_HEIGHT);
// Reset the scrollview to previous location
scrollview.contentOffset = offset;
// Keyboard is no longer visible
keyboardVisible = NO;
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
YESを返します。
}
希望はあなたを助けるでしょう:)
「キーボードの管理」セクションの2番目の段落を確認してください:http://developer.apple.com/library/ios/DOCUMENTATION/UIKit/Reference/UITextField_Class/Reference/UITextField.html