单击按钮时添加文本文件 Objective-C

Posted

技术标签:

【中文标题】单击按钮时添加文本文件 Objective-C【英文标题】:Adding textfiles when button is clicked Objective-C 【发布时间】:2017-03-03 06:47:46 【问题描述】:

我正在研究有关按钮单击的功能,我的要求是我只有一个按钮,如果第一次单击按钮添加标签,如果第二次单击相同按钮添加另一个标签,例如 5 次单击按钮应添加 5 个标签。

-(IBAction) btnAddClicked: (id) sender 
    if (_btnAdd.tag == 0) 
        _lblAdd1.hidden = YES;
    
    if (_btnAdd.tag == 1) 
        _lblAdd2.hidden = YES;
    
    if (_btnAdd.tag == 2) 
        _lblAdd3.hidden = YES;
    
    if (_btnAdd.tag == 3) 
        _lblAdd4.hidden = YES;
    

【问题讨论】:

请展示您的尝试! 您的 stroyboard 中已经有 5 个标签了吗? 是的,我需要通过点击按钮来显示它们 【参考方案1】:

您必须确定哪个按钮正在发送事件

-(IBAction)btnAddClicked: (id) sender 
    //Typecast to retrieve tag of current button.
    UIButton *btn = (UIButton * ) sender;
    if (btn.tag == 0) 
        _lblAdd1.hidden = YES;
    
    if (btn.tag == 1) 
        _lblAdd2.hidden = YES;
    
    if (btn.tag == 2) 
        _lblAdd3.hidden = YES;
    
    if (btn.tag == 3) 
        _lblAdd4.hidden = YES;
    

【讨论】:

不正确,总是执行 btn.tag==0 这只是表示您没有正确设置按钮标签。【参考方案2】:

您可以根据点击更新标签。如果您想要多个标签,您可以继续,否则最后一次点击您将按钮标签设置为 0。

-(IBAction)btnAddClicked: (id) 发件人

UIButton *btn = (UIButton * ) 发送者;

if (btn.tag == 0) 
    _lblAdd1.hidden = YES;
    btn.tag = 1;

else if (btn.tag == 1) 
    _lblAdd2.hidden = YES;
    btn.tag = 2;

else if (btn.tag == 2) 
    _lblAdd3.hidden = YES;
    btn.tag = 3;

else if (btn.tag == 3) 
    _lblAdd4.hidden = YES;
    btn.tag = 0;

【讨论】:

【参考方案3】:

如何做到这一点 1 使用 TableView 谁的单元格包含一个 textFld ,每次单击按钮时,将 UITableView 按单元格数更新一个最后计数.. 示例:首先单击将 indexPath/number/etc 添加到可变数组并重新加载 tableview 以获取该数组的计数,表格单元格将为一个单元格创建.. 现在,在第二次单击时,再向该数组添加一个并重新加载 tableview,现在 tableview 将为数组计数创建单元格,现在为 2 ... SO On。希望你能得到它

【讨论】:

2.使用 UIStackView 并在每次单击时创建一个 UITextFld 并将其作为该 stackView 的子视图 ..【参考方案4】:

以下代码用于创建 n 个动态文本字段:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
return _count; 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
TextViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
return cell; 

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 30)];
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 30)];
[button setTitle:@"Add TextField" forState:UIControlStateNormal];
button.backgroundColor = [UIColor blueColor];
[button addTarget:self action:@selector(addTextField) forControlEvents:UIControlEventTouchUpInside];
[footerView addSubview:button];
return footerView;  

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
return 30;  

-(void)addTextField
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:_count inSection:0];
_count++;
[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; 

【讨论】:

问题被标记为 objective-c 而不是 swift

以上是关于单击按钮时添加文本文件 Objective-C的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 在按钮单击时添加一行多个文本字段/视图

单击按钮时动态添加新文本框

使用 jquery 在按钮单击上添加文本到简单表单

在iphone中单击按钮时如何将文本字段/标签中的值添加到数组中

单击按钮时更新文本文件

当用户单击按钮时,将文本字符串添加到输入字段中(在光标位置)