我在视图中有两个UILabel,将我的乐队和歌曲名称显示为字符串。我正在努力添加选项来手动更改这些字符串中的任何一个。我希望保持原样,并且我添加了2个按钮来手动输入歌曲名称或乐队名称。问题是,所有文本编辑据我所知,它需要有实际的TextField或TextView来调出键盘等。
我只想触摸“输入歌曲名称”的一个按钮并给出键盘,当输入被击中时,用该字符串替换uilabel中的字符串,并输入带名称uibutton,并更改uilabel试。
问题在于文档,我真的不明白如何做到这一点。有没有人对ios中的文本输入有所了解,可以给我一个指针/提示,告诉我如何做到这一点?
答案 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可编辑。
试试这些..