我正在制作一个程序,将我的大学的数字从十进制转换为二进制。 我已经使用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.
}
}
应如何改造?
答案 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。