2

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

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

但是,绑定headerTitle需要一个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对象实现了绑定所需的上述数组访问器。有什么建议么?

4

2 回答 2

1

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

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

因此,对于NSMutableArray被调用myArray并包含具有title类型属性的对象,NSString您可以执行以下操作:

@property (nonatomic, readonly, getter = columnOneGetter) NSString *columnOneString;

(NSString*) columnOneGetter
{
   return myArray[0].title;
}

当然总是假设他们的数量是事先知道的,我们不是在谈论 200 列 :-)

于 2014-02-16T08:33:54.173 回答
0

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

编辑:我意识到这是针对mac(不是ios)的,但如果它真的有帮助的话应该很容易翻译。

于 2014-02-16T07:36:45.627 回答