协议'UITextFieldDelegate'

时间:2017-11-08 10:06:49

标签: swift3 ios9

'ShowData'与协议'UITextFieldDelegate'的冗余一致性,我需要在我的项目文本字段委托中,但当我使用textFieldDelegate作为协议时,就会出现错误

class ShowData:ViewController,UITableViewDelegate,UITableViewDataSource,UITextFieldDelegate {

@IBOutlet weak var imgSearchBox: UIImageView!
@IBOutlet weak var txtSearchBox: UITextField!
@IBOutlet weak var searchController: UISearchBar!
@IBOutlet weak var imgtringle: UIImageView!
var filteredData: [String]!
var searchActive : Bool = false
var search:String=""

// var searchController: UISearchController!
let arr = ["Afghanistan","Albania","Algeria","Andorra","Angola","Anguilla","Antigua & Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia & Herzegovina","Botswana","Brazil","British Virgin Islands","Brunei","Bulgaria","Burkina Faso","Burundi","Cambodia","Cameroon","Cape Verde","Cayman Islands","Chad","Chile","China","Colombia","Congo","Cook Islands","Costa Rica","Cote D Ivoire","Croatia","Cruise Ship","Cuba","Cyprus","Czech Republic","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Estonia","Ethiopia","Falkland Islands","Faroe Islands","Fiji","Finland","France","French Polynesia","French West Indies","Gabon","Gambia","Georgia","Germany","Ghana","Gibraltar","Greece","Greenland","Grenada","Guam","Guatemala","Guernsey","Guinea","Guinea Bissau","Guyana","Haiti","Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Isle of Man","Israel","Italy","Jamaica","Japan","Jersey","Jordan","Kazakhstan","Kenya","Kuwait","Kyrgyz Republic","Laos","Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg","Macau","Macedonia","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Mauritania","Mauritius","Mexico","Moldova","Monaco","Mongolia","Montenegro","Montserrat","Morocco","Mozambique","Namibia","Nepal","Netherlands","Netherlands Antilles","New Caledonia","New Zealand","Nicaragua","Niger","Nigeria","Norway","Oman","Pakistan","Palestine","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Poland","Portugal","Puerto Rico","Qatar","Reunion","Romania","Russia","Rwanda","Saint Pierre & Miquelon","Samoa","San Marino","Satellite","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","South Africa","South Korea","Spain","Sri Lanka","St Kitts & Nevis","St Lucia","St Vincent","St. Lucia","Sudan","Suriname","Swaziland","Sweden","Switzerland","Syria","Taiwan","Tajikistan","Tanzania","Thailand","Timor L'Este","Togo","Tonga","Trinidad & Tobago","Tunisia","Turkey","Turkmenistan","Turks & Caicos","Uganda","Ukraine","United Arab Emirates","United Kingdom","Uruguay","Uzbekistan","Venezuela","Vietnam","Virgin Islands (US)","Yemen","Zambia","Zimbabwe"];

//MARK: add value in array from core data
var userdata:[User] = []

@IBOutlet weak var tableviewoutlet: UITableView!

override func viewDidLoad() {
    super.viewDidLoad()

    tableviewoutlet.delegate = self
    tableviewoutlet.dataSource = self
  //  searchController.delegate = self
    filteredData = arr
    tableviewoutlet.isHidden = true
    imgtringle.isHidden = true
   txtSearchBox.addTarget(self, action: #selector(searchRecordsAsPerText(_ :)), for: .editingChanged)
    //MARK: call fetch function And Reload table view Data
    self.fetchdata()
    self.tableviewoutlet.reloadData()
}

//MARK: tableview methods to show data from core data
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
    return filteredData.count
}

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
    let name = filteredData[indexPath.row]
    //        cell.textLabel?.text = name.fullName! + " " + name.name! + " " + name.password! + " " + name.confirmPassword!
    cell.textLabel?.text = name
    return cell
}

@objc func searchRecordsAsPerText(_ textfield:UITextField) {
   tableviewoutlet.isHidden = false
    imgtringle.isHidden = false
    filteredData.removeAll()
    if textfield.text?.characters.count != 0 {
        imgSearchBox.isHidden = true
        for strCountry in arr {
            let range = strCountry.lowercased().range(of: textfield.text!, options: .anchored, range: nil,   locale: nil)

            if range != nil {
                filteredData.append(strCountry)
            }
        }
    } else {
        imgSearchBox.isHidden = false
        filteredData = arr
    }

    tableviewoutlet.reloadData()
}

/ *     // MARK:搜索栏方法

func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
    tableviewoutlet.isHidden = false
    imgtringle.isHidden = false
    searchActive = true;
}

func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
    tableviewoutlet.isHidden = false
     imgtringle.isHidden = false
    searchActive = false;
}

func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
    tableviewoutlet.isHidden = false
     imgtringle.isHidden = false
    searchActive = false;
}

func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
    tableviewoutlet.isHidden = false
     imgtringle.isHidden = false
    searchActive = false;
}

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
    tableviewoutlet.isHidden = false
     imgtringle.isHidden = false

    filteredData = arr.filter({ (text) -> Bool in
        let tmp: NSString = text as NSString
        let range = tmp.range(of: searchText, options: String.CompareOptions.anchored)
        return range.location != NSNotFound
    })
    if(filteredData.count == 0){
        searchActive = false;
    } else {
        searchActive = true;
    }
    tableviewoutlet.reloadData()
}

* /

//MARK: fetch data from core data
func fetchdata(){
    let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
    do{
        userdata = try context.fetch(User.fetchRequest())
    }
    catch{
        print(error)
    }
}

}

0 个答案:

没有答案