0

我有一排以编程方式实例化的标签,它们存储在 NSMutableArray 中。它们目前不包含任何数据。我想要做的是让它在用户输入字符时自动显示在标签中。我不知道该怎么做。我知道如何访问我创建的标签 [MyArray ObjectAtIndex:0] 等等,但是我怎样才能做到这一点,以便当用户在键盘上键入时它会格式化文本(我有格式化代码)然后才出现在屏幕上。

我需要帮助将每个字符在输入时显示在屏幕上。

任何帮助将不胜感激 - 我有一个文本字段(它是隐藏的),键盘通过按钮出现。如果这有帮助。:)

先感谢您 :)。

4

4 回答 4

3
    UITextField *tf;
    [tf addTarget:self action:@selector(editingChanged:) forControlEvents:UIControlEventEditingChanged];

- (void)editingChanged:(UITextField *)textField {
  _myHiddenLabel.text = textField.text;
}
于 2013-04-22T13:09:07.430 回答
1

您可以在 UITextField 内的 Text 更改时添加观察者,然后访问您的标签并向其添加文本...

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[[NSNotificationCenter defaultCenter] 
    addObserver:self 
    selector:@selector(changeLabelsMethod:)
               name:UITextFieldTextDidChangeNotification 
    object:myHiddenTextField];
}


-(void)changeLabelsMethod:(UITextField*)txtField
{
    Static int i=0;

    if(i<[MyArray count])
    {
    UILabel *lbl=[MyArray ObjectAtIndex:i];
    lbl.text=txtField.text;
    }
    else
      return
    i++;
}

编辑:请参阅尤金的正确方法的答案

于 2013-04-22T13:05:09.167 回答
0

如果您将 viewController 设置为隐藏 textField 的委托并实现UITextFieldDelegate 协议,则每次输入字符时都会收到通知

于 2013-04-22T13:06:53.160 回答
0
    - (IBAction)textFieldValueChanged {
            NSString *strLastChar = [txtSearch.text substringFromIndex:txtSearch.text.length-1];
            UILabel *lblCurrent = [arrSearch objectAtIndex:intCurrentLblNo];
            [lblCurrent setText:strLastChar];
            intCurrentLblNo++;
    }

将 intCurrentLblNo 作为全局变量并设置 intCurrentLblNo = 0; 在 viewdidload 方法中

并设置它...

    [txtSearch addTarget:self action:@selector(textFieldValueChanged) forControlEvents:UIControlEventValueChanged];

在 viewdidload 方法中

于 2013-04-22T13:14:04.787 回答