2016-11-06 74 views

回答

3

您的复选框以这样的视图控制器连接:

class ViewController: UIViewController { 

    @IBOutlet weak var checkBox1: UISwitch! 
    @IBOutlet weak var checkBox2: UISwitch! 

    @IBAction func checkBox1Pressed(_ sender: UISwitch) { 
    // using if else 
    if checkBox1.isOn { 
     checkBox2.setOn(true, animated: true) 
    } else { 
     checkBox2.setOn(false, animated: true) 
    } 
    } 
} 

或使用三元运算符,像:

class ViewController: UIViewController { 

    @IBOutlet weak var checkBox1: UISwitch! 
    @IBOutlet weak var checkBox2: UISwitch! 

    @IBAction func checkBox1Pressed(_ sender: UISwitch) { 
    // or using ternary operator 
    checkBox1.isOn ? checkBox2.setOn(true, animated: true) : checkBox2.setOn(false, animated: true) 
    } 
} 

结果:

enter image description here

如果不使用UISwitch,请与您现有的代码

更新由于从OP评论更新你的问题:

将您的复选框与视图控制器连接,如下所示:

class ViewController: NSViewController { 
    @IBOutlet weak var checkBox1: NSButton! 
    @IBOutlet weak var checkBox2: NSButton! 
} 

然后为第一个复选框添加IBAction为向视图控制器使用if别的也切换所述第二复选框,像:

class ViewController: NSViewController { 
    @IBOutlet weak var checkBox1: NSButton! 
    @IBOutlet weak var checkBox2: NSButton! 


    @IBAction func checkBox1Pressed(_ sender: NSButton) { 
    // Note: state checked == 1, state unchecked == 0 

    // if checkBox1 is checked 
    if checkBox1.state == 1 { 
     // also set checkBox2 on checked state 
     checkBox2.state = 1 
    } else { 
     // uncheck checkBox2 
     checkBox2.state = 0 
    } 
    } 
} 

或使用三元运算符,像:

class ViewController: NSViewController { 
    @IBOutlet weak var checkBox1: NSButton! 
    @IBOutlet weak var checkBox2: NSButton! 


    @IBAction func checkBox1Pressed(_ sender: NSButton) { 
    // Note: state checked == 1, state unchecked == 0 

    // or using ternary operator 
    checkBox1.state == 1 ? (checkBox2.state = 1) : (checkBox2.state = 0) 
    } 
} 

结果:

enter image description here

+0

谢谢你的快速回复。我必须写更具体的问题。你的答案帮助了我,但我需要知道它是如何在一个mac程序上运行的,如果选中,那么它将会出现一个复选标记。我不使用UISwitch。我可以在NSButton和Any对象之间进行选择。 – Feindpak

+0

更新了我的答案@Feindpak – ronatory

1

有此方法在UISwitch类:

func setOn(Bool, animated: Bool) 

例子:

yourSwitch.setOn(true, animated: true) 

为了TWI交换机相互连接起来,你必须写一些更复杂。如果您在故事板中创建视图,代码看起来就像这样。

class ViewController: UIViewController { 

    @IBOutlet weak var checkBox1: UISwitch!  
    @IBOutlet weak var checkBox2: UISwitch! 

} 

然后你的第一个复选框使用的,如果其他人也切换第二个复选框,这样添加IBAction为到视图控制器:

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var firstSwitch: UISwitch! 
    @IBOutlet weak var secondSwitch: UISwitch! 

    @IBAction func firstValueChanged() { 
     secondSwitch.setOn(firstSwitch.isOn, animated: true) 
    } 

    @IBAction func secondValueChanged() { 
     firstSwitch.setOn(secondSwitch.isOn, animated: true) 
    } 
} 
相关问题