Swift // NSPopUpButton .addingItems()问题

时间:2018-11-28 00:14:44

标签: swift xcode if-statement switch-statement nspopupbutton

我搜索了很多,但没有找到任何东西。 我对编程世界比较陌生,我正在Xcode上编写一些macOS软件。但是有问题: 在弹出菜单n°1中选择了指定项目后,我想在清除菜单后将菜单项添加到弹出菜单n°2(NSPopUpButton)。因此,我对两者进行了说明,并编写了if语句,但它不起作用。 在应用程序中,当选择第一个指定项目时(因为应用程序启动时已经选择了第一个项目),弹出菜单n°2会显示我想要的内容,但是如果我将项目更改为“项目2” (或者在我的情况下是“不常见”而不是“常见”),什么都不会发生。 image showing "Common" selected when app starts // image showing "Uncommon" selected with same results than before我认为这是因为我的第一个'if'语句的主体被执行了,所以其他语句没有执行,但是我不知道如何解决。我尝试使用'switch'而不是'if'或'if / else if / else'语句,但是它不起作用。我还尝试为每个if语句都创建一个函数,但是什么也没发生。 我希望你能帮助我。谢谢大家。

    @IBOutlet weak var ingredientRarityNorthlands: NSPopUpButton!
    @IBOutlet weak var ingredientListNorthlands: NSPopUpButton!


   override func viewDidLoad() {
    super.viewDidLoad()


    if ingredientRarityNorthlands.titleOfSelectedItem == "Common" {
        ingredientListNorthlands.removeAllItems()
        ingredientListNorthlands.addItems(withTitles: ingredientListNorthlandsCommon)
    }
    if ingredientRarityNorthlands.titleOfSelectedItem == "Uncommon" {
        ingredientListNorthlands.removeAllItems()
        ingredientListNorthlands.addItems(withTitles: ingredientListNorthlandsUncommon)
    }

    if ingredientRarityNorthlands.titleOfSelectedItem == "Rare" {
        ingredientListNorthlands.removeAllItems()
        ingredientListNorthlands.addItems(withTitles: ingredientListNorthlandsRare)
    }
}

let ingredientListNorthlandsCommon = ["ok", "ko"]
let ingredientListNorthlandsUncommon = ["grer", "egr"]
let ingredientListNorthlandsRare = ["ok", "okk"]

1 个答案:

答案 0 :(得分:0)

好的,我解决了这个问题,这就像将我的'if'语句放在“ @IBAction func myPopUp(_ sender:NSPopUpButton)”正文中一样简单。昨天的深夜让我太累了,无法考虑用这种方式解决问题。这是针对遇到相同问题的人的修改后的代码:

    @IBAction func ingredientRarityNorthlands(_ sender: NSPopUpButton) {
    if ingredientRarityNorthlands.titleOfSelectedItem == "Common" {
        ingredientListNorthlands.removeAllItems()
        ingredientListNorthlands.addItems(withTitles: ingredientListNorthlandsCommon)
    }
    if  ingredientRarityNorthlands.titleOfSelectedItem == "Uncommon" {
        ingredientListNorthlands.removeAllItems()
        ingredientListNorthlands.addItems(withTitles: ingredientListNorthlandsUncommon)
    }
    if ingredientRarityNorthlands.titleOfSelectedItem == "Rare" {
        ingredientListNorthlands.removeAllItems()
        ingredientListNorthlands.addItems(withTitles: ingredientListNorthlandsRare)
    }
}