Pie*_*ier 3 macos xcode cocoa nstabview swift
我想知道何时NSTabView
切换到特定视图。为此,我扩展NSTabViewController
了我的自定义类以能够充当委托:
class OptionsTabViewController: NSTabViewController {
override func tabView(_ tabView: NSTabView, didSelect tabViewItem: NSTabViewItem?) {
print(tabViewItem!.identifier)
}
}
Run Code Online (Sandbox Code Playgroud)
这将打印看起来像指针内存位置的内容:
Optional(0x608000100e10)
Optional(0x6080000c36b0)
Run Code Online (Sandbox Code Playgroud)
我想应该可以在界面构建器中的某处设置这些标识符,但是我尝试在标记为的不同文本字段中编写内容,identifier
并且仍然在控制台中获取这些内存位置值。
我也使用过,print(tabViewItem!.label)
但它会在选项卡按钮中打印标签。
那么如何设置该标识符以便能够识别选项卡视图组件中哪个视图处于活动状态?
首先,您可以通过以下方式定义您的标识符:
然后在您的代码中,您可以定义一个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
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
718 次 |
最近记录: |