大佬教程收集整理的这篇文章主要介绍了ios – 如何在键盘出现时使视图控制器滚动到文本字段,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
请详细说明,因为我是iPhone开发的新手.
提前致谢.
添加滚动视图
将scrollView拖放到视图控制器上,就像使用文本字段一样,并调整尺寸以满足您的需要(看起来您希望它填充视图控制器.)
然后将文本字段放入滚动视图.我认为使用左侧的文档大纲最简单.将文本字段拖到滚动视图上,如图所示.
键盘出现时滚动视图滚动
//register for keyboard notifications [[NsnotificationCenter defaultCenter] addObserver:self SELEctor:@SELEctor(keyboardWasShown:) name:UIKeyboardDidShowNotification object:nil];
// Called when the UIKeyboardDidShowNotification is sent. - (void)keyboardWasShown:(Nsnotification*)aNotification { NSDictionary* info = [aNotification userInfo]; CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; [self.scrollView setContentOffset:CGPointMake(0,kbSize.height) animated:YES]; } //called when the text field is being edited - (IBACtion)textFieldDidBeginEdiTing:(UITextField *)sender { sender.delegate = self; }
当显示键盘时,将调用前两个方法.当您开始编辑文本字段时,将调用第二个.
现在转到故事板并将文本字段的操作附加到刚刚添加的方法.您可以右键单击文本字段,选择相应的操作并将其拖到方法中.
当您右键单击文本字段时,您应该看到类似的内容.
将此属性添加到视图控制器,然后右键单击从滚动视图拖动到该视图.它允许您的视图控制器控制滚动视图.
@property (weak,nonatomiC) IBOutlet UIScrollView *scrollView;
喜欢这个:
在您的视图控制器头中,使您的视图控制器成为UITextFieldDelegate,如下所示:
@interface ViewController : UIViewController <UITextFieldDelegate>
[[NsnotificationCenter defaultCenter] addObserver:self SELEctor:@SELEctor(keyboardWillBeHidden:) name:UIKeyboardWillHideNotification object:nil];
// Called when the UIKeyboardWillHideNotification is sent - (void)keyboardWillBeHidden:(Nsnotification*)aNotification { [self.scrollView setContentOffset:CGPointMake(0,0) animated:YES]; } - (BOOL)textFieldShouldReturn:(UITextField *)textField { return [textField resignFirstResponder]; }
键盘关闭时调用第一种方法.它将滚动视图返回到其原始位置.编辑完文本字段后,将调用第二种方法.它允许在发生这种情况时解除键盘.
更多信息
这里是我的ViewController.h供参考
#import <UIKit/UIKit.h> @interface ViewController : UIViewController <UITextFieldDelegate> @end
和ViewController.m
#import "ViewController.h" @interface ViewController () @property (weak,nonatomiC) IBOutlet UIScrollView *scrollView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //register for keyboard notifications [[NsnotificationCenter defaultCenter] addObserver:self SELEctor:@SELEctor(keyboardWasShown:) name:UIKeyboardDidShowNotification object:nil]; [[NsnotificationCenter defaultCenter] addObserver:self SELEctor:@SELEctor(keyboardWillBeHidden:) name:UIKeyboardWillHideNotification object:nil]; } // Called when the UIKeyboardDidShowNotification is sent. - (void)keyboardWasShown:(Nsnotification*)aNotification { NSDictionary* info = [aNotification userInfo]; CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; [self.scrollView setContentOffset:CGPointMake(0,kbSize.height) animated:YES]; } // Called when the UIKeyboardWillHideNotification is sent - (void)keyboardWillBeHidden:(Nsnotification*)aNotification { [self.scrollView setContentOffset:CGPointMake(0,0) animated:YES]; } - (IBACtion)textFieldDidBeginEdiTing:(UITextField *)sender { sender.delegate = self; } - (BOOL)textFieldShouldReturn:(UITextField *)textField { return [textField resignFirstResponder]; } @end
以上是大佬教程为你收集整理的ios – 如何在键盘出现时使视图控制器滚动到文本字段全部内容,希望文章能够帮你解决ios – 如何在键盘出现时使视图控制器滚动到文本字段所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。