如何计算数学类型并在swift中键入时给出结果

时间:2016-06-08 11:11:48

标签: swift macos nstextfield

我正在制作一个程序,将我的大学的数字从十进制转换为二进制。 我已经使用Xcode在Swift中编写了脚本和函数,它的工作非常好。但现在它可以使用计算按钮。 当用户在NSTextField上输入数字时,我想删除按钮代码并在特定标签上返回结果。

如何做到这一点? 它适用于OSX环境的应用程序。

我在带有转换按钮的视图文件上有以下代码,我想删除它。

import Cocoa

class DecimalView: NSViewController {

    @IBOutlet weak var decimalNumberText: NSTextField!

    @IBOutlet weak var toBinaryLabel: NSTextField!

    @IBAction func convertButton(sender: AnyObject) {

        let binaryNumber = DecimalToBinary(Int(decimalNumberText.stringValue)!)
        toBinaryLabel.stringValue = binaryNumber

    }

    override func viewDidLoad() {

        super.viewDidLoad()



        // Do view setup here.
    }

}

应如何改造?

2 个答案:

答案 0 :(得分:2)

如果您使用NSTextField作为输入,请将其委托设置为self并使用NSTextFieldDelegate' controlTextDidChange 委托。

在此委托中,您可以调用转换脚本和函数,并在特定标签上显示结果。

import Cocoa

class DecimalView: NSViewController, NSTextFieldDelegate {

@IBOutlet weak var decimalNumberText: NSTextField!

@IBOutlet weak var toBinaryLabel: NSTextField!

func convertNumber() {
    let binaryNumber = DecimalToBinary(Int(decimalNumberText.stringValue)!)
    toBinaryLabel.stringValue = binaryNumber
}

override func viewDidLoad() {

    super.viewDidLoad()
    // Do view setup here.

    decimalNumberText.delegate = self
}

override func controlTextDidChange(obj: NSNotification) {
    // Call your conversion functions here and display the result on label
    if obj.object as! NSTextField == decimalNumberText {
        self.convertNumber()
    }
}

}

答案 1 :(得分:1)

我假设您使用的是NSTextField。为此,您必须使用及其方法textDidChange:。在此方法中,只需调用函数并将值设置为label。

参考文献:NSTextField value changed