文本输入ios问题

mcvgt66p  于 2023-02-17  发布在  iOS
关注(0)|答案(4)|浏览(134)

我在一个视图中有两个UILables,它将我的乐队和歌曲名称显示为字符串。我正在添加手动更改这些字符串的选项。我希望保持原样,我添加了两个按钮来手动输入歌曲名称或乐队名称。问题是,据我所知,所有的文本编辑都需要有实际的TextField或TextView来调出键盘等。
我只想触摸一个按钮“输入歌曲名称”,并得到一个键盘,当输入被击中,取代字符串在uilabel与该字符串,同样的输入乐队名称uibutton,并再次更改uilabel。
问题是在文档中我不太明白如何做到这一点,有人知道如何在ios中输入文本,可以给予我一个指针/提示如何做到这一点?

dvtswwa3

dvtswwa31#

只需将标签声明为Global并在实现方法中实现即可。现在,通过使用的Delegate方法,将所有歌曲和所有专辑数据放入数组中,并在表视图中显示所有数据

  • (void)表格视图:(UITableView *)表格视图didSelectRowAtIndexPath:(NSIndexPath *)indexPath根据需要更改标签的文本
@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
ttp71kqs

ttp71kqs2#

你要做的是用一个文本字段替换标签,并将其设置为用户按下按钮时的第一个响应者,你需要一个类作为文本字段的代理,这样你就可以在textFieldShouldReturn方法中处理enter,以放弃文本字段上的第一个响应者(关闭键盘),并将文本字段改回标签视图并更新其内容。

7gs2gvoe

7gs2gvoe3#

这可以通过许多方法来实现。
1)你可以在你的button方法中使用hidden来隐藏标签并显示textView。
2)你可以使用文本字段代替标签,使文本字段.editable=NO,当按下按钮时,只需通过文本字段.text=nil清除文本字段并使文本字段可编辑。
试试这个...

wkyowqbh

wkyowqbh4#

You want like when user touch on button you want to add text and button should be look like UILable. is it your objective? 
If I am right you can achieve this thing to add gesture in uilable, you don't need to add button and handle tab method you can change the text.
    let tap = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:)))
    myView.addGestureRecognizer(tap)
    @objc func handleTap(_ sender: UITapGestureRecognizer) {
         print("Hello World")
      }

相关问题