Swift // NSPopUpButton .addingItems() 问题

Swift // NSPopUpButton .addingItems() problems

我搜索了很多,但没有找到任何东西.. 我是编程界的新手,我正在 Xcode 上编写一些 macOS 软件。但是有一个问题: 当在弹出菜单 n°1 中选择指定项目时,我想在清除菜单后将项目添加到弹出菜单 n°2 (NSPopUpButton)。所以我对两者都做了一个出口并编写了 if 语句,但它不起作用。 在应用程序中,当第一个指定的项目被选中时(因为应用程序启动时第一个项目已经被选中),弹出菜单 n°2 显示的是我想要的,但如果我将项目更改为 "item 2"(或者在我的例子中是 "Uncommon" 而不是 "Common")没有任何反应。 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"]

好的,我解决了这个问题,就像将我的 '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)
    }
}