如何使用文本字段和按钮将文本添加到每个单元格中?

Posted

技术标签:

【中文标题】如何使用文本字段和按钮将文本添加到每个单元格中?【英文标题】:How do I add texts into each cell using textfield and button? 【发布时间】:2015-12-16 06:35:37 【问题描述】:

如何将文本添加到tableViewCell?我拖了一个textfieldbutton,并在它们下面添加,设置tableViewtableviewCell。单元格的标识符是“Cell”。这是我到目前为止制作的代码。理想情况下,我想将在textfield 中输入的文本添加到单元格中,例如,如果我添加我的名字,它将被添加,如果下一个人添加她的名字,她的名字也会出现在单元格上。

@IBOutlet weak var myTableView: UITableView!
@IBOutlet weak var textField: UITextField!

var stringArray = [String]()
@IBOutlet weak var AddBUtton: UIButton!

override func viewDidLoad() 
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    textField.delegate = self


func textFieldDidBeginEditing(textField: UITextField) 

func textFieldDidEndEditing(textField: UITextField) 

func textFieldShouldBeginEditing(textField: UITextField) -> Bool 
    return true

func textFieldShouldClear(textField: UITextField) -> Bool 
    return true

func textFieldShouldEndEditing(textField: UITextField) -> Bool 
    return true

func textFieldShouldReturn(textField: UITextField) -> Bool 
    textField.resignFirstResponder()
    return true


func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    let cellIdentifier = "Cell"
    let cell = self.myTableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! UITableViewCell 
    return cell

【问题讨论】:

【参考方案1】:

尝试设置UITableViewCell的textLabel

func textFieldShouldReturn(textField: UITextField) -> Bool 
    stringArray.append(textField.text)
    textField.text = nil
    textField.resignFirstResponder()
    table.reloadData() // if possible just reload or insert only the cell
    return true


func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    let cellIdentifier = "Cell"
    let cell = self.myTableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! UITableViewCell 
    cell.textLabel.text = stringArray[indexPath.row]
    return cell

【讨论】:

谢谢!有效!!现在我想如果我可以在这个项目中添加更多功能会非常酷,比如当我在我的文本字段中输入单词时,它会按字母顺序排列。你知道怎么做吗? 每次将字符串添加到数组时,您只需在重新加载之前对其进行排序,例如。 1) stringArray.append(textField.text) 2) stringArray.sort //怎么排序,mm自己想办法【参考方案2】:

在自定义 UITableViewCell 中尝试this control。每次在文本框中输入名称时,将该名称添加到该控件的数据源中,以便下次在建议列表中出现。您可以轻松地在用户键入时过滤文本(如果需要)。

【讨论】:

【参考方案3】:

您可以创建一个继承自UITableViewCell 的自定义UITableViewCell 类。从那里您可以添加一个变量来存储您从textfield 获得的任何文本。

之后,您可以将该单元格用作cellForRowAtIndexPath 方法中的新单元格。

【讨论】:

感谢您的参与!这个问题解决了!【参考方案4】:

尝试做这样的事情:

@IBOutlet weak var text: UITextField!

@IBOutlet weak var button: UIButton!
@IBOutlet weak var tableView: UITableView!

var name:NSMutableArray = NSMutableArray();

override func viewDidLoad() 
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    self.tableview.delegate = self;        
    self.tableView.dataSource = self;


override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.


@IBAction func buttonClicked(sender: AnyObject) 
    if(self.text.text == "")
        let alert = UIAlertController(title: "Alert", message: "Enter a name", preferredStyle: UIAlertControllerStyle.Alert)
        alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
        self.presentViewController(alert, animated: true, completion: nil);
    
    self.name.addObject(self.text.text!)
    self.text.text = "";
    self.tableView.reloadData();


func numberOfSectionsInTableView(tableView: UITableView) -> Int 
    return 1;


func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    let cellIdentifier = "Cell";
    var cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier);
    if(cell == nil)
        cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: cellIdentifier);
    

    cell?.textLabel?.text = self.name[indexPath.row] as? String

    return cell!;


func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    return self.name.count;

【讨论】:

感谢您的时间和帮助!这个演示对我这个初学者来说有点困难,但值得知道我将尝试学习能够使用的很酷的功能;)

以上是关于如何使用文本字段和按钮将文本添加到每个单元格中?的主要内容,如果未能解决你的问题,请参考以下文章

移动到表格单元格中的下一个文本字段

如何在通过文本字段和圆形矩形按钮提供的表格视图单元格中显示数据

重用 tableview 单元格中的元素

iOS如何从tableview单元格中获取按钮文本

如何在Access查询中将多行的文本值组合到一个单元格中[重复]

如何使用文本字段 UITableView 从自定义单元格中获取值?