IOS开发键盘弹出时遮住输入框的问题

IOS UITextView实现自动隐藏键盘

三 步 :

设置  Text input traits ---》Return key 为DONE

         去掉auto-enable Return key 选中状态。

创建一个类为:


@interface BoardReturn : NSObject <UITextFieldDelegate> {


}

@end

 

@implementation BoardReturn


- (BOOL)textFieldShouldReturn:(UITextField *)textField {

[textField resignFirstResponder];

return NO;

}


@end


在你的Controller中加入此类

#import "Controller.h"

#import "BoardReturn.h"


@implementation Controller


 // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.

 - (void)viewDidLoad {

         //view上的UIinputfiled 对应的 IBoutlet.

myText.clearButtonMode=UITextFieldViewModeWhileEditing;

myText.delegate=[[[BoardReturn allocinitautorelease]; 

    [super viewDidLoad];

 }




IOS开发键盘弹出时遮住输入框的问题

  (2012-02-21 15:07:39)
标签: 

杂谈

 
增加UITextFieldDelegate委托
//重新定位view的坐标
- (BOOL)textFieldShouldReturn:(UITextField *)textField 
       
    // When the user presses return, take focus away from the text field so that the keyboard is dismissed.        
    NSTimeInterval animationDuration = 0.30f;        
    [UIView beginAnimations:@"ResizeForKeyboard" context:nil];        
    [UIView setAnimationDuration:animationDuration];        
    CGRect rect = CGRectMake(0.0f, 0.0f, self.view.frame.size.width, self.view.frame.size.height);        
    self.view.frame = rect;        
    [UIView commitAnimations];        
    [textField resignFirstResponder];
    return YES;        
}
//隐藏键盘
- (void)textFieldDidBeginEditing:(UITextField *)textField
       
        CGRect frame = textField.frame;
        int offset = frame.origin.y + 32 - (self.view.frame.size.height - 216.0);//键盘高度216
        NSTimeInterval animationDuration = 0.30f;                
        [UIView beginAnimations:@"ResizeForKeyBoard" context:nil];                
        [UIView setAnimationDuration:animationDuration];
        float width = self.view.frame.size.width;                
        float height = self.view.frame.size.height;        
        if(offset > 0)
        {
                CGRect rect = CGRectMake(0.0f, -offset,width,height);                
                self.view.frame = rect;        
        }        
        [UIView commitAnimations];                
}



iOS开发中,发现UITextView没有想UITextField中textFieldShouldReturn:这样的方法,那么要实现UITextView return键隐藏键盘,可以通过判断输入的字符是不是回车符来实现。

首先,声明要实现UITextView 的delegate。

[plain]
@interface MyViewController :UIViewController <UITextViewDelegate> 


然后, 设置textView的delegate.
textView.delegate =self;

通常在viewDidLoad中设置此属性,或在nib(或storyboard)中。

最后,实现代理方法。

//隐藏键盘
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text 

    if ([text isEqualToString:@"\n"]) { 
        [textView resignFirstResponder];  
       return NO; 
   } 
   return YES; 


这样,就实现了iOS中UITextView return键隐藏键盘。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值