将NSTextField转换为Xcode 8中macOS的值
问题描述:
嗨我对Xcode 8非常陌生,并决定我想为macOS制作一个简单的计算应用程序。我在网上学到的一切,但不能使头或它的尾巴,因为没有我试过的作品 我下面的代码是:将NSTextField转换为Xcode 8中macOS的值
import Cocoa
class ViewController: NSViewController {
@IBOutlet weak var P: NSTextField!
@IBOutlet weak var Q: NSTextField!
@IBOutlet weak var FieldP: NSTextField!
@IBOutlet weak var FieldQQ: NSTextField!
@IBOutlet weak var ResultLabel: NSTextField!
@IBAction func CalculateButton(_ sender: NSButton) {
var A = (FieldP.stringValue as NSString).floatValue
var B = (FieldQQ.stringValue as NSString).floatValue
var sum = A + B
ResultLabel.stringValue = "\(sum)"
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
}
FieldP是其中u输入一个数字,所以是FieldQQ。我希望能够将它们添加到一起,并在命中计算按钮后在ResultLabel字段中显示最终结果。任何人都可以为我解决这个问题并告诉我它是如何完成的?真的很感激它!
答
最有可能的IBAction
没有连接到Interface Builder中的按钮。检查一下。
既然您是Swift的新手,请遵守变量名称和方法以小写字母开头的命名约定。 (如果您要更改名称,则必须重新连接Interface Builder中的UI元素)。
无关的问题NSTextField
(实际上是NSControl
超)也有一个floatValue
和doubleValue
财产(不看书或看坏的教程,这表明这种无聊的类型强制转换为NSString
)和所有变量实际上是常数(let
)。考虑黄色警告和他们的建议来解决它们。
的代码被认为是
@IBOutlet weak var fieldP: NSTextField!
@IBOutlet weak var fieldQQ: NSTextField!
@IBOutlet weak var resultLabel: NSTextField!
@IBAction func calculateButton(_ sender: NSButton) {
let a = fieldP.floatValue
let b = fieldQQ.floatValue
let sum = a + b
resultLabel.stringValue = "\(sum)"
// or even resultLabel.floatValue = sum
}