2016-03-27 13 views
0

Amacım, bir UISextField düzenlemesini temsilciler kullanarak bir UISwitch ile etkinleştirmek/devre dışı bırakmaktır. Bu temsilci sınıftır:Bir UISwitch'i bir temsilci sınıfındaki bir IBOutlet'e bağlayın

import Foundation 
import UIKit 

class SwitchedTextFieldDelegate : NSObject, UITextFieldDelegate{ 

    @IBOutlet weak var switchText : UISwitch! 

    func textFieldShouldBeginEditing(textField: UITextField) -> Bool { 

    //Here I intended to read the UISwitch state 

    print("Can't touch this") 

    return false 
    } 

} 

Ben film şeridine IBOutlet sürükleyip bağlamak için denedim, ama mümkün değil. UIViewController'ı devralan ana görüntü denetleyicide yapabilirim. Swift'de birden fazla mirasın mümkün olmadığını öğrendim. Bunu nasıl çözeceksin? Bunun yerine bir IBAction kullanmayı deneyeceğim.

+1

temsilci olarak görünümü, kontrol cihazının kendisi kullanımı yaygındır. İsterseniz temsilci olarak ayrı bir sınıf kullanabilirsiniz, ancak öyküyü storyboard'u kullanarak bağlayamazsınız. Bunu kodda yapmanız gerekecek. – ryantxr

cevap

1

Ana görünüm denetleyicinizde, bir UITextField ve UISwitch'in IBOutlet'ini sürükleyin. Daha sonra UITextField Temsilcisini onaylayın. Benim ViewController ekranını shot.Here FirstViewController paylaştı iyi anlamak için

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 
    if switchText.on{ 

     return true 

    }else{ 

     return false 
    } 
    } 

sadece MainViewController gibidir: Artık bu gibi UITextField Delege yöntemini uygulamak. Umarım bu size yardımcı olur.

enter image description here

İlgili konular