【问题标题】:NSPopUpButton selection to Float Swift 4NSPopUpButton 选择浮动 Swift 4
【发布时间】:2018-07-07 21:53:14
【问题描述】:

我正在尝试将 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
}

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

【问题讨论】:

    标签: swift floating-point iboutlet nspopupbutton


    【解决方案1】:

    如您所见,userMenuSelection 的标题将浮点值表示为字符串。

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

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

    【讨论】:

      【解决方案2】:

      你可以试试

      let arr = ["50", "20", "10"]
      

      //

      @IBAction func pushButtonforResult(_ sender: NSPopUpButton) {
         let selectedValue = Float(arr[sender.selectedTag()])!
         Result.floatValue = selectedValue * userInput.floatValue
      
         // OR
      
          let selectedValue = Float(sender.selectedItem!.title)!
          result.floatValue = selectedValue * userInput.floatValue
      
      }
      

      【讨论】:

      • 您好,感谢您的意见。我尝试了这两个选项,但它们在我的代码中不起作用。当 userMenuSelection 是 @IBoutlet 时,也不能使用“let”。有什么想法吗?
      • 尝试编辑............也不要以大写字母开头的变量名
      • 我认为它越来越接近工作但仍然出现错误。这是错误:“Any”类型的值没有成员“selectedTag”将“Any”转换为“AnyObject”或使用“as!”强制向下转换为更具体的类型以访问成员。
      • 将 sender 参数从 Any 转换为 NSPopUpButton
      • 啊是的,这是有道理的。好的,现在还有另一个错误消息。它突出显示结果变量并说:'NSTextField'类型的值没有成员'floatvalue'
      猜你喜欢
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多