在单独的标签上键入单个字符?

时间:2013-04-22 13:01:05

标签: ios objective-c uilabel

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

我需要帮助将每个角色放在屏幕上,因为它是键入的。

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

提前谢谢你:)。

4 个答案:

答案 0 :(得分:3)

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

- (void)editingChanged:(UITextField *)textField {
  _myHiddenLabel.text = textField.text;
}

答案 1 :(得分:1)

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

- (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++;
}

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

答案 2 :(得分:0)

如果您将viewController设置为隐藏的textField的委托并实施UITextFieldDelegate Protocol

,则每次输入字符时都会收到通知

答案 3 :(得分: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方法中