在函数调用中设置发件人类型

时间:2019-03-01 20:28:09

标签: swift nsmenuitem sender

showParameterWindow调用相同的主函数(NSButton)以添加新对象,而NSCollectionViewItem则调用该主函数来编辑现有对象。主功能中使用了发件人类型,以触发正确的行为。

现在,主函数也应该由两个NSMenuItem调用。菜单项会调用以下代码段,但预期的发送者信息(NSButtonNSCollectionViewItem)不会传递给该功能。发件人类型仍为NSMenuItem

@IBAction func newParameterMenuItemSelected(_ sender: Any) {
    showParameterWindow(sender as! NSButton)
}
@IBAction func editParameterMenuItemSelected(_ sender: Any) {
    showParameterWindow(sender as! ParameterCollectionViewItem)
}

@IBAction func showParameterWindow(_ sender: Any) {

    // 1 check if sender is CollectionViewItem or Add-Button and prepare values to pass to window
    if sender is NSButton {
        //... do something
    }else{
        //... do something else
        }
    }

使用菜单项时,根据需要设置发件人的正确方法是什么? 谢谢!

0 个答案:

没有答案