`
修博龙泉
  • 浏览: 318340 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ios 文本框随键盘隐藏

 
阅读更多
//隐藏键盘1

UITextViewDelegate
self.imageDesc.delegate = self;
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text
{
    if ([text isEqualToString:@"\n"]) {
        [textView resignFirstResponder];
        return NO;
    }
    return YES;
}

//隐藏键盘2
- (void)viewDidLoad
{
    [super viewDidLoad];
    self.wantuTitle.text = title;
    wantuMessage.delegate = self;
}

//该方法为点击输入文本框要开始输入是调用的代理方法:就是把view上移到能看见文本框的地方
- (void)textFieldDidBeginEditing:(UITextField *)textField{
    CGFloat keyboardHeight = 216.0f;
    if (self.view.frame.size.height - keyboardHeight <= textField.frame.origin.y + textField.frame.size.height) {
        CGFloat y = textField.frame.origin.y - (self.view.frame.size.height - keyboardHeight - textField.frame.size.height - 5);
        [UIView beginAnimations:@"srcollView" context:nil];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [UIView setAnimationDuration:0.275f];
        self.view.frame = CGRectMake(self.view.frame.origin.x, -y, self.view.frame.size.width, self.view.frame.size.height);
        [UIView commitAnimations];
    }
}

//该方法为点击虚拟键盘Return,要调用的代理方法:隐藏虚拟键盘
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    [textField resignFirstResponder];
    return YES;
}

//该方法为完成输入后要调用的代理方法:虚拟键盘隐藏后,要恢复到之前的文本框地方
- (void)textFieldDidEndEditing:(UITextField *)textField{
    [UIView beginAnimations:@"srcollView" context:nil];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration:0.275f];
    self.view.frame = CGRectMake(self.view.frame.origin.x, 0, self.view.frame.size.width, self.view.frame.size.height);
    [UIView commitAnimations];
}

#pragma mark Table view methods
- (UIView *)bubbleView:(NSString *)text from:(BOOL)fromSelf {
// build single chat bubble cell with given text
UIView *returnView = [[UIView alloc] initWithFrame:CGRectZero];
returnView.backgroundColor = [UIColor clearColor];
   
UIImage *bubble = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:fromSelf?@"bubbleSelf":@"bubble" ofType:@"png"]];
UIImageView *bubbleImageView = [[UIImageView alloc] initWithImage:[bubble stretchableImageWithLeftCapWidth:21 topCapHeight:14]];
   
UIFont *font = [UIFont systemFontOfSize:12];
CGSize size = [text sizeWithFont:font constrainedToSize:CGSizeMake(150.0f, 1000.0f) lineBreakMode:UILineBreakModeCharacterWrap];
   
UILabel *bubbleText = [[UILabel alloc] initWithFrame:CGRectMake(21.0f, 14.0f, size.width+10, size.height+10)];
bubbleText.backgroundColor = [UIColor clearColor];
bubbleText.font = font;
bubbleText.numberOfLines = 0;
bubbleText.lineBreakMode = UILineBreakModeCharacterWrap;
bubbleText.text = text;

bubbleImageView.frame = CGRectMake(0.0f, 0.0f, 200.0f, size.height+40.0f);
if(fromSelf)
returnView.frame = CGRectMake(120.0f, 10.0f, 200.0f, size.height+50.0f);
else
returnView.frame = CGRectMake(0.0f, 10.0f, 200.0f, size.height+50.0f);

[returnView addSubview:bubbleImageView];
[bubbleImageView release];
[returnView addSubview:bubbleText];
[bubbleText release];
   
return [returnView autorelease];
}
分享到:
评论

相关推荐

    iOS为文本框定制二级键盘

    在iOS应用开发中,UI设计和用户体验是至关重要的部分,其中TextField(文本框)作为用户输入数据的常见组件,其交互方式直接影响到用户的操作体验。本文将深入探讨如何为UITextField定制二级键盘,实现键盘的展开和...

    IOS 解决输入框被键盘遮挡问题

    这时,我们可以使用`UIKeyboardNotifications`来监听键盘的显示和隐藏,然后相应地调整界面布局。 3. 键盘通知:通过注册`UIKeyboardWillShowNotification`和`UIKeyboardWillHideNotification`通知,我们可以知道...

    ios开发 键盘管理,关闭键盘,隐藏键盘,键盘挡住编辑区域时上移编辑区域

    IQKeyboardManager可以防止滑动键盘在弹出的时候覆盖一个文本字段,可以任何时候关闭键盘,进入下一个输入框,或者上一个输入框,超级方便。更重要的是,全程不需要你输入任何代码。使用IQKeyboardManager您只需添加...

    ios如何解决布局太长导致部分不显示,且解决键盘覆盖文本框的问题。

    同时,别忘了在键盘隐藏时恢复原布局。 4. **使用库如IQKeyboardManager**:第三方库如IQKeyboardManager能自动处理键盘遮挡问题,它会自动调整底部视图的高度,使得用户始终能看见当前激活的文本框。 以上就是...

    键盘遮挡文本框的问题

    标题中的“键盘遮挡文本框的问题”是一个常见的iOS开发中遇到的用户体验问题。在iPhone应用开发中,当用户在文本框(UITextField或UITextView)中输入时,弹出的键盘可能会遮挡到文本框,使得用户无法看到正在编辑的...

    ios 开发关闭键盘

    在iOS开发中,用户在与应用交互时,经常会遇到需要输入文字的情况,此时系统会自动弹出键盘。尤其是iPhone应用程序,虽然iPad键盘提供了一个“关闭”或“完成”按钮来隐藏键盘,但iPhone键盘默认没有这个功能。然而...

    iOS键盘控制示例

    在iOS中,键盘弹出时可能会遮挡文本框,影响用户查看和输入。为了优化用户体验,开发者可以使用键盘通知来控制键盘的行为。例如,当键盘出现时,可以通过调整视图控制器的布局或者使用`UIScrollView`来上移内容,...

    ios应用源码之自定义的数字键盘 20181210

    本项目"ios应用源码之自定义的数字键盘 20181210"提供了一种实现自定义数字键盘的方法。下面将详细探讨相关知识点。 一、iOS 自定义键盘概述 在iOS中,系统提供了默认的键盘类型,但它们可能无法满足所有应用的特殊...

    iOS 给键盘添加简单的输入框

    为了确保自定义输入视图随键盘一起显示和隐藏,我们需要监听键盘的通知。例如,我们可以添加`UIKeyboardWillShowNotification`和`UIKeyboardWillHideNotification`通知,并相应地调整视图的布局。 4. 适配不同设备...

    ios-自定义车牌号选择键盘.zip

    6. **动画效果**:为了提高用户体验,可以为键盘的显示和隐藏添加动画效果,例如渐显渐隐、滑动等。此外,按钮的按下状态也可以通过添加触摸效果来增强交互感。 7. **兼容性**:在设计自定义键盘时,要考虑其在不同...

    java swing文本框(密码框)没有内容时,占位显示默认信息(仿IOS)

    5. **视觉效果**:为了模仿iOS的风格,可以调整占位符标签的字体颜色、大小等属性,使其看起来更像原生的iOS文本框。 在实际编程中,可以创建一个自定义的`TextComponent`类,继承自`JTextField`或`JPasswordField`...

    IOS开发中取消文本框输入时的小键盘

    本文将详细讲解如何在iOS开发中取消文本框输入时自动弹出的小键盘。 首先,我们需要在Interface Builder中对UITextField进行配置。打开你的故事板(Storyboard)文件,找到你想要取消小键盘显示的UITextField。在...

    仿iphone软键盘输入文本框.zip

    "仿iPhone软键盘输入文本框"是一个利用jQuery和CSS3技术实现的网页组件,它旨在为用户在桌面浏览器上提供与iPhone硬件键盘类似的输入体验。这个组件对于那些在非移动设备上也需要模拟移动设备输入场景的应用或网站...

    ios-使用xib做的键盘.zip

    5. **动画效果**:为了提高用户体验,还可以在键盘显示和隐藏时添加过渡动画,这可以通过修改视图的frame或使用`UIView`的动画方法来实现。 6. **适配不同设备**:确保自定义键盘能在各种屏幕尺寸的iOS设备上正常...

    iOS项目开发键盘弹出遮挡输入框问题解决方案

    7. 文本框注销第一响应者,对应的响应时间就是系统收回键盘,并且在隐藏键盘时会发出UIKeyboardWillHideNotification和UIKeyboardDidHideNotification的通知。 键盘的弹出与收起问题可以通过控制文本框的代理方法来...

    iOS自定义安全键盘

    3. **设置键盘类型**:在需要使用自定义键盘的文本框(UITextField或UITextView)中,设置`keyboardType`属性为自定义键盘的类型。 4. **初始化键盘**:在适当的地方初始化键盘对象,并将其与文本输入控件关联。 5...

    swift-iOS平台轻量级的键盘管理器使用简单功能强大键盘再也不会挡住输入控件

    6. **高度可定制**:开发者可以根据需求自定义键盘管理器的行为,例如设置键盘出现时的动画速度,或者在键盘隐藏时输入框恢复原位的方式等。 在实际项目中,通过引入WHC_KeyboardManager,开发者可以显著提高应用的...

    总结IOS中隐藏软键盘的三种方式

    出发软键盘隐藏最常用的事件是文本框的 Did End on Exit,它在用户按软键盘中的 Done 键时发生。选中一个UITextField控件,点击鼠标右键弹出面板,鼠标左键按住 Did End on Exit 事件旁边的圆圈,然后拖曳到右侧 .h ...

    键盘隐藏demo

    总的来说,这个"键盘隐藏demo"是一个实用的教学示例,它教会开发者如何在iOS应用中有效地管理和隐藏键盘,同时展示了如何定制和扩展UITextField的功能,这些都是iOS开发中不可或缺的基础技能。通过深入研究和实践这...

    支持的ReactNative文本框支持ios和android

    6. **键盘管理**:在移动设备上,与文本输入关联的是键盘的显示和隐藏。React Native提供了`KeyboardAvoidingView`组件,可以自动调整布局以避免键盘遮挡输入框,确保良好的用户体验。 7. **样式和布局**:React ...

Global site tag (gtag.js) - Google Analytics