简单的UITextfield就像消息应用程序一样

时间:2015-02-10 14:05:37

标签: ios resize uitextfield uikeyboard

有人可以指出我的方向,简单的例子,文本字段的工作方式类似于消息应用程序。我看了很多例子,它们都非常复杂,而且效果不好。当然,UIKit提供了一些简单的功能来复制消息应用程序中的文本字段。

为了澄清,我遵循逻辑来显示一个文本字段,在按下时将整个视图移动到键盘上方并调整其自身大小以显示所有输入的文本。

提前感谢

2 个答案:

答案 0 :(得分:0)

使用第三方控件,例如DAKeyboardControl

DAKeyboardControl可让您轻松地向所有iMessagesUIViewUIScrollView添加键盘感知和滚动解雇(后退键盘ala UITableView应用)只有1行代码。

DAKeyboardControl自动扩展UIView并使用键盘的当前帧提供块回调。

DAKeyboardControl现在完全支持orientation更改,iPhone& iPad,甚至可以识别iPad上的键盘脱离或分离。

答案 1 :(得分:0)

注册键盘显示和隐藏通知的通知,然后在通知到达时,分别向上移动屏幕以显示键盘UIKeyboardWillShowNotification和UIKeyboardWillHideNotification。你可以做这样的事情来实现键盘显示和隐藏。而对于文本字段则使用文本视图。

- (void)viewDidLoad {
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(onKeyboardHide:) name:UIKeyboardWillHideNotification object:nil];
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(onKeyboardShow:) name:UIKeyboardWillShowNotification object:nil];   
}


-(void)onKeyboardShow:(NSNotification *)notification
{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.25];
    self.view.frame = CGRectMake(0,-100,self.view.frame.size.width,self.view.frame.size.height);
    [UIView commitAnimations];
}
-(void)onKeyboardHide:(NSNotification *)notification
{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.25];
    self.view.frame = CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height);
    [UIView commitAnimations];
}