objective-c - NSArrayController 用于多态类

标签 objective-c cocoa polymorphism nsarraycontroller master-detail

我有以下(精简的)类接口(interface):

@interface ScriptEvent : NSObject {
  ...
}

@interface SingleLine : ScriptEvent {
  NSString *line;
}

@interface MultiLine : ScriptEvent {
  NSArray *lines;
}

另一个父类包含一个 NSArray ,其中包含 ScriptEvent 列表(可以是 SingleLineMultiLine >).

在我的 XIB 中,我有一个 NSArrayController 绑定(bind)到这个 ScriptEvent 列表,我想设置一个主/细节安排。因此,我有一个链接到此 NSArrayControllerNSTableView,并且我想根据 的选定成员是否显示不同详细信息面板NSArrayController 是一个 SingleLineMultiLine

这可能吗?

最佳答案

检查所选成员是 SingleLine 还是 MultiLine:

if([objectToCheck isKindOfClass:[SingleLine class]]){
    //Do some staff
}else if([objectToCheck isKindOfClass:[MultiLine class]]){
    //
}else{
    //
}

关于objective-c - NSArrayController 用于多态类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545848/

相关文章:

macos - OS X - NSViewController 如何找到它的窗口?

objective-c - 是否有任何好的开源 Mac 应用程序模板

c# - 多态性:被调用方法的真实类型是什么?

ios - 将 initWithNibName 与 Storyboard一起使用

ios - 以编程方式安装/卸载约束

objective-c - 如何实现方法调配?

cocoa - NSPersistentUIManager - 放气

java - 有没有办法在基类中使用重写函数? ( java 语)

java - 使用 super 作为引用类型时无法访问子类中的方法

objective-c - 桌面 Cocoa 中的 UIGraphicsGetImageFromCurrentImageContext 对应物?