我试图将String值从Float转换为NSPopUpButton值。

例如。我有3个号码选择。 50、20、10。当用户选择其中一个数字时,我想将计算结果设为Float值。

我知道这可能很简单,但是我是新手,在Stackoverflow上找不到任何东西。任何帮助,将不胜感激。这是我的代码示例。

@IBOutlet weak var userInput: NSTextField!
@IBOutlet weak var result: NSTextField!
@IBOutlet weak var userMenuSelection: NSPopUpButton!

override func viewDidLoad() {
    super.viewDidLoad()

    userMenuSelection.removeAllItems()
    userMenuSelection.addItems(withTitles: ["50", "20", "10"])
}

@IBAction func pushButtonforResult(_ sender: Any) {
    /*
    Not sure how to take the selected userMenuSelection and multiply it by the users input to get my result in a float.
    E.g. look below. This of course does not work because the menu items are strings.
    */

    result.floatValue = userMenuSelection * userInput.floatValue
}


希望这对我的要求有意义。

最佳答案

如您所见,您的userMenuSelection具有将Float值表示为String的标题。

您可以简单地检索所选标题并将其转换为Float

@IBAction func pushButtonforResult(_ sender: Any) {
    var selectedValue = Float(userMenuSelection.titleOfSelectedItem ?? "0") ?? 0.0

    result.floatValue = selectedValue * userInput.floatValue
}

08-18 08:42