文字输入ios问题

时间:2011-04-20 22:53:24

标签: cocoa-touch string ios text

我在视图中有两个UILabel,将我的乐队和歌曲名称显示为字符串。我正在努力添加选项来手动更改这些字符串中的任何一个。我希望保持原样,并且我添加了2个按钮来手动输入歌曲名称或乐队名称。问题是,所有文本编辑据我所知,它需要有实际的TextField或TextView来调出键盘等。

我只想触摸“输入歌曲名称”的一个按钮并给出键盘,当输入被击中时,用该字符串替换uilabel中的字符串,并输入带名称uibutton,并更改uilabel试。

问题在于文档,我真的不明白如何做到这一点。有没有人对ios中的文本输入有所了解,可以给我一个指针/提示,告诉我如何做到这一点?

3 个答案:

答案 0 :(得分:3)

只需声明您的标签Global并在实现方法中实现 将所有歌曲和所有专辑数据分组 并在表格视图中显示所有数据 现在通过使用

的Delegate方法
  
      
  • (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath   根据需要更改Label的文本
  •   
@interface songViewController ()
{
UILabel *bandLabel;
UILabel *songLabel;
NSArray *bandData;
NSArray *songData;
}
@end
@implementation songCreateViewController
- (void)viewDidLoad {
    [super viewDidLoad];
{
    bandLabel=[[UILabel alloc]init];
    bandLabel.frame=CGRectMake(40, 580, 500, 30);
    bandLabel.text=@"Join group as";
    [self.view addSubview:bandLabel];

    songLabel=[[UILabel alloc]init];
    songLabel.frame=CGRectMake(40, 580, 500, 30);
    songLabel.text=@"Join group as";
    [self.view addSubview:songLabel];
}
   #pragma mark Table view Delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{ 
    if(tableView==albumTableView)
    {
        bandLabel.text=[bandData objectAtIndex:indexPath.row];
    }
    else
        if(tableView==songTableView)
    {  
       songLabel.text=[songData objectAtIndex:indexPath.row];  
    }
@end

答案 1 :(得分:1)

您需要做的是用文本字段替换标签,并在用户按下按钮时将其设置为第一响应者。您将需要一个作为文本字段的委托的类,因此您可以在textFieldShouldReturn方法中输入以在文本字段上重新签名第一个响应者(以关闭键盘)并将文本字段更改回标签视图并更新其内容。

答案 2 :(得分:1)

可以通过多种方式实现..

1)您可以在按钮方法中使用隐藏隐藏标签并显示textView。

2)您可以使用textField代替label,make textfield.editable = NO,按下按钮时只需按 textfield.text = nil 清除文本字段,并使textfield可编辑。

试试这些..