首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何创建可移动UItextfield?

如何创建可移动UItextfield?
EN

Stack Overflow用户
提问于 2012-03-24 07:07:08
回答 2查看 359关注 0票数 0

如何创建可移动UItextfield,使其停留在屏幕底部,当键盘出现时,它会移动到iphone应用程序中键盘的顶部?如何在Xcode4.2中做到这一点?就像whatsapp和Skype聊天一样。我想使用将字符串输入到表中。

EN

回答 2

Stack Overflow用户

发布于 2012-03-24 10:13:10

您应该将viewController注册为键盘通知的侦听器。当键盘出现时,会触发一个带有用户字典的通知。字典将包含有用的信息,如键盘相对于屏幕的位置,用于将textFields帧动画显示到新位置。查看文档:

http://developer.apple.com/library/ios/#DOCUMENTATION/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html

具体地说,您需要的通知是:

代码语言:javascript
运行
复制
[[NSNotificationCenter defaultCenter] addObserver:self
            selector:@selector(keyboardWasShown:)
            name:UIKeyboardDidShowNotification object:nil];

   [[NSNotificationCenter defaultCenter] addObserver:self
             selector:@selector(keyboardWillBeHidden:)
             name:UIKeyboardWillHideNotification object:nil];

在大多数情况下,您需要将它们添加到viewDidLoad中。以后在viewDidUnload中使用done.Such时,别忘了取消注册通知(removeObserver:)。

票数 1
EN

Stack Overflow用户

发布于 2012-03-24 10:47:45

你可以像休伯特提到的那样使用通知,或者你可以不断地检查UITextField是否是第一响应者。如果它是第一个响应者,这意味着文本字段被选中,并且键盘将影响该字段。

代码语言:javascript
运行
复制
-(void)viewDidLoad {

    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(checkTextField) userInfo:nil repeats:YES];

}

-(void)checkTextField {

    if (textField isFirstResponder) {

        //the text field has been tapped and the keyboard will come up, so animate the text field moving up here


    } else {

        //the text field is not selected, so it should be in its original position

    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9847585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档