2016-03-07 68 views
3

嗯,我創建的tableview和它裏面的tableview與廈門國際銀行文件裏面創建tableviewcell的tableview

現在我想創建XIB文件裏面的tableview細胞,主要的問題是,你無法在它的內部產生細胞定義該小區標識符

我不斷收到此錯誤

「無法離隊與標識符AutoCompleteRowIdentifier細胞 - 必須註冊一個筆尖或標識類或連接 原型CE LL在故事板」

這是我的代碼

import UIKit 

class TableViewCell2: UITableViewCell, UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate { 

@IBOutlet weak var textField: UITextField! 

@IBOutlet weak var autocompleteTableView: UITableView! 

var pastUrls = ["Men", "Women", "Cats", "Dogs", "Children"] 
var autocompleteUrls = [String]() 


func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool 
{ 
    autocompleteTableView.hidden = false 
    let substring = (textField.text! as NSString).stringByReplacingCharactersInRange(range, withString: string) 

    searchAutocompleteEntriesWithSubstring(substring) 
    return true  // not sure about this - could be false 
} 

func searchAutocompleteEntriesWithSubstring(substring: String) 
{ 
    autocompleteUrls.removeAll(keepCapacity: false) 

    for curString in pastUrls 
    { 
     var myString:NSString! = curString as NSString 

     var substringRange :NSRange! = myString.rangeOfString(substring) 

     if (substringRange.location == 0) 
     { 
      autocompleteUrls.append(curString) 
     } 
    } 

    autocompleteTableView.reloadData() 
} 



func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return autocompleteUrls.count 
} 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    let autoCompleteRowIdentifier = "AutoCompleteRowIdentifier" 
    let cell : UITableViewCell = tableView.dequeueReusableCellWithIdentifier(autoCompleteRowIdentifier, forIndexPath: indexPath) as UITableViewCell 
    let index = indexPath.row as Int 

    cell.textLabel!.text = autocompleteUrls[index] 
    return cell 
} 

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    let selectedCell : UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)! 
    textField.text = selectedCell.textLabel!.text 
} 

override func awakeFromNib() { 
    super.awakeFromNib() 
    textField.delegate = self 
    autocompleteTableView.delegate = self 
    autocompleteTableView.dataSource = self 
    autocompleteTableView.scrollEnabled = true 
    autocompleteTableView.hidden = true 
} 

override func setSelected(selected: Bool, animated: Bool) { 
    super.setSelected(selected, animated: animated) 

    // Configure the view for the selected state 
}} 

,你知道你不能定義廈門國際銀行文件中標識

Image for the tableview cell

感謝

回答

2

您需要先註冊一個帶有autocompleteTableView的單元,然後才能將其解鎖。修改你的代碼是這樣的:

override func awakeFromNib() { 
    super.awakeFromNib() 
    textField.delegate = self 
    autocompleteTableView.delegate = self 
    autocompleteTableView.dataSource = self 
    autocompleteTableView.scrollEnabled = true 
    autocompleteTableView.hidden = true 

    // Register cell 
    autocompleteTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "AutoCompleteRowIdentifier") 
} 
+0

ty非常多! ,它的工作原理:$ –

+0

非常棒的男人!你能接受我的答案,然後:) – RaffAl

+0

當然,我做了;),你救了我! –