首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在输入按键时获取UITextField的值?

在输入按键时获取UITextField的值?
EN

Stack Overflow用户
提问于 2008-12-23 05:20:39
回答 2查看 67.1K关注 0票数 107

假设我有以下代码:

代码语言:javascript
复制
IBOutlet UITextField* nameTextField;
IBOutlet UILabel* greetingLabel;

我希望用户一按下任何键,greetingLabel就会显示"Hello nameTextField“。

我基本上需要的是Cocoa委托方法controlTextDidChange的iPhone等效项。

每次击键时都会调用textField:shouldChangeCharactersInRange:委托方法:

代码语言:javascript
复制
- (BOOL)              textField:(UITextField *)textField
  shouldChangeCharactersInRange:(NSRange)range     
              replacementString:(NSString *)string

字符串参数返回按下的字符。但是,实际textField的值(nameTextField.text)仍然为空。

这里我漏掉了什么?(我希望nameTextField能够准确反映用户到目前为止输入的字符串)。

EN

回答 2

Stack Overflow用户

发布于 2008-12-23 08:19:22

您可以在文本字段中为事件UIControlEventEditingChanges注册一个操作:

代码语言:javascript
复制
[nameTextField addTarget:self action:@selector(updateLabelUsingContentsOfTextField:) forControlEvents:UIControlEventEditingChanged];

..。

代码语言:javascript
复制
// TODO: error checking

- (void)updateLabelUsingContentsOfTextField:(id)sender {

    greetingLabel.text = [NSString stringWithFormat:@"Hello %@", ((UITextField *)sender).text];

}
票数 102
EN

Stack Overflow用户

发布于 2008-12-23 09:34:32

UITextField有一个通知UITextFieldTextDidChange,如果你注册了它,它将在每次文本更改时触发。只需注册该通知,并在通知调用的方法中更改标签的文本。

除此之外,传递给通知处理程序的对象将包含UITextField的文本。

希望这能有所帮助。

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

https://stackoverflow.com/questions/388237

复制
相关文章

相似问题

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