2014-02-16 92 views
2

我想將NSTableColumn的headerTitle屬性綁定到我模型圖層中的NSMutableArray(通過NSArrayController)。如何綁定到NSTableColumn的headerTitle?

基本上我想有一個數組,我可以更改值並使表列標題標題更新。這是否合理?

但是,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對象實現綁定所需的上述數組訪問器。有什麼建議麼?

回答

1

以前沒有嘗試過,但實際上你要求的是使用KVC作爲數組索引。一個快速谷歌沒有什麼關於這個問題,除了一些結果,表明它不(可能)(檢查this

最簡單的解決方法,我可以拿出來將是簡單地添加專用屬性的數組索引..不好,但做的工作。

所以對於一個NSMutableArray稱爲myArray和包含的對象類型的title性能NSString你會做這樣的事情:

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

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

總是假設當然其數量是預先知道的,我們說的不是200列:-)

+0

我剛剛開始使用綁定,我不知道如何去實現你的想法。你能否詳細解釋一下。另外,一般來說,你將如何去使用'NSTableColumn'的'headerTitle'綁定?我是否以不尋常的方式使用它?我基本上希望能夠通過更改數組控制器中的值來設置表頭標題;這聽起來不太有爭議,但我找不到如何在任何地方這樣做的例子! –

+0

回答編輯相應 - 通常免責聲明:鍵入瀏覽器,沒有測試,也沒有調試等 – Jay

+0

它聽起來有點不可思議,將當前選擇綁定到標題,至少我不能拿出一個用例, d當表中選定的行更改時,要更改標題。 – Jay

相關問題