如何绑定到NSTableColumn的headerTitle?

时间:2014-02-16 05:25:03

标签: macos cocoa nstableview cocoa-bindings nstablecolumn

我想将NSTableColumn的headerTitle属性绑定到我的模型层中的NSMutableArray(通过NSArrayController)。

基本上我想要一个数组,我可以在其中更改值并更新表列标题标题。那是合理的吗?

但是,the headerTitle binding需要一个NSString,我不知道如何通过我的NSArrayController将我的模型对象连接到此绑定。谷歌没有为这个问题提供很多点击。

我的模型层由两个类组成(两者都符合KVC标准)。第一个是表示单个列标题的模型,它有一个属性title

// A model class representing the column title of single NSTableColumn
@interface ColumnTitle : NSObject
@property NSString *title;
+ (ColumnTitle*) columnTitleWithTitle:(NSString*) aString;
@end

第二个模型对象,它表示一组有序的ColumnTitle对象,

// Class representing an order collection of model items
@interface TableColumnTitles : NSObject
@property NSMutableArray* columnTitles;  // an array of ColumnTitle objects
// These are the KVC array accessors
-(void) insertObject:(ColumnTitle*)columnTitle inColumnTitlesAtIndex:(NSUInteger)index;
- (void)removeObjectFromColumnTitlesAtIndex:(NSUInteger)index;
- (void)replaceObjectInColumnTitlesAtIndex:(NSUInteger)index withObject:(ColumnTitle*)columnTitle;
@end

请注意,TableColumnTitles对象实现了绑定所需的上述数组访问器。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

Haven之前没有尝试过,但您实际要求的是使用 KVC进行数组索引。一个快速谷歌没有在这个问题上发现任何事情,除了一些结果表明它不可能(检查this

我能想出的最简单的解决方法是简单地为数组索引添加专用属性..不是很好但是可以完成工作。

因此,对于名为NSMutableArray的{​​{1}}并且包含myArray类型title属性的对象,您可以执行以下操作:

NSString

总是假设他们的号码事先知道,我们不会说200列: - )

答案 1 :(得分:0)

我认为这可能/可能不是你所追求的,但快速谷歌搜索让我来到这里: http://pinkstone.co.uk/how-to-add-touch-events-to-a-uitableviewfooter-or-header/

编辑:我意识到这是针对mac(而不是ios),但如果实际上有帮助,应该很容易翻译。