gpt4 book ai didi

swift - 如何设置 NSTabViewItem 的标识符?

转载 作者:搜寻专家 更新时间:2023-11-01 06:30:15 24 4
gpt4 key购买 nike

我想知道 NSTabView 何时切换到特定 View 。为此,我用我的自定义类扩展了 NSTabViewController 以便能够充当委托(delegate):

class OptionsTabViewController: NSTabViewController {
override func tabView(_ tabView: NSTabView, didSelect tabViewItem: NSTabViewItem?) {
print(tabViewItem!.identifier)
}
}

这打印了看起来像指针内存位置的内容:

Optional(0x608000100e10)
Optional(0x6080000c36b0)

我想应该可以在界面生成器中的某处设置这些标识符,但我已经尝试在标记为 identifier 的不同文本字段中编写内容,并且仍然在控制台中获取这些内存位置值。

我还使用了 print(tabViewItem!.label) 但它会在选项卡按钮中打印标签。

那么如何设置该标识符以识别选项卡 View 组件中哪个 View 处于事件状态?

最佳答案

首先,您可以这样定义您的标识符:

enter image description here

然后在您的代码中您可以定义一个 enum 来检查哪个是当前选定的选项卡,执行如下操作:

enum YourTabs:String {
case tab1
case tab2
case none
}

class ViewController: NSViewController, NSTabViewDelegate {
@IBOutlet var tabView:NSTabView!

public func tabView(_ tabView: NSTabView, didSelect tabViewItem: NSTabViewItem?) {
if let identifier = tabViewItem?.identifier as? String,
let currentTab = YourTabs(rawValue: identifier) {
switch currentTab {
case .tab1:
print("do something with tab1")
break
case .tab2:
print("do something with tab2")
break
default:
break
}
}
}
}

关于swift - 如何设置 NSTabViewItem 的标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48374804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com