Xcode委托链接到对象

时间:2016-06-23 01:33:03

标签: xcode swift delegation

我是Xcode IDE的新手,我很快就会更好地了解它是如何工作的。

我知道可以对UI元素进行委托,例如,comboBox。这允许使用NSComboBoxDelegate支持的方法。那一切都很好。我理解如何将一个comboBox链接到该方法。

我的问题是:如果有两个comboBox元素委托给单个.swift文件,我该如何定义哪个元素将“触发”该方法,例如comboBoxSelectionDidChange?我必须有单独的.swift文件吗?每次更改时,该方法是否有效?有没有办法将每个对象链接到每个方法,因为它可以用插座和操作?

我认为这是一个简单的问题,也许是程序员可以轻松回答的问题,但对于初学者而言,抽象和更简单的间隙会使理解变得过于缓慢。

1 个答案:

答案 0 :(得分:1)

您的元素(例如UIPicker)可以使用相同的委托方法。因此,您需要通过标记区分它们。或者通过实际参考。你需要给你的每个组合框'显然,首先是标签,然后才能使用标签选项。

例如:

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
    {
        if(pickerView.tag == 0)
        {
            //do whatEver you want with the picker that has tag 0
        }
        else if(pickerView.tag == 1)
        {
            //do whatEver you want with the picker that has tag 1
        }
    }

或参考:

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
    {
        if(pickerView == self.cityPicker)
        {
            //do whatEver you want with the city picker
        }
        else if(pickerView = self.countryPicker)
        {
            //do whatEver you want with the country picker
        }
    }