2011-06-20 4 views
2

Я не могу найти способ сделать строку, показывающую номер отображаемой строки.Номер строки NSTableView

Фактически у меня есть NSArrayController и NSTableView, чьи столбцы привязаны к NSArrayController.

Теперь я должен показать номер строки (возможно, индекс данных в DataModel в порядке), и я не могу найти способ сделать это.

Любые предложения?

ответ

0

Заканчивать этот ответ: Displaying row index in an NSTableView bound to NSArrayController

+0

Спасибо за ваш ответ, я видел этот ответ, и мне это не помогло. Я думаю, что это будет сделано с подсчетом строк сущности, используя методы NSArrayController', такие как 'arangedObjects. @ Cound.propertyName', а затем привязать столбец строки к массиву, который содержится в номере от' 1' до номера '@ count'. Что вы думаете об этом? – Prooshani

+0

Честно говоря, я бы сказал, что забыл привязать эту строку. Я имею в виду, что бы вы даже привязали его, если вы не отслеживаете его в своей сущности? Вы на самом деле ссылались на эту ссылку? Если вы против этого, то вам нужно будет добавить свойство вашей сущности (например, rowIndex). Но вы обнаружите, что сложно сохранить это свойство в синхронизации с реальностью, если ваши данные не очень статичны. – sosborn

+0

вы правы, мой друг, я хочу показать строку от '1' до' @ count', но неправильно сказал «BIND». Можно ли назначить ячейкам столбца таблицы, чтобы показать некоторые специальные NSNumber? – Prooshani

0

пример с связывания object.value в интерфейсе строителя:

// InfoToBind.h

@interface InfoToBind : NSObject { 

NSString *kSurname ; 
NSString *kName ; 
NSInteger kNumberRow; 
} 
@property (nonatomic, retain) NSString * kSurname ; 
@property (nonatomic, retain) NSString *kNameKey ; 
@property (nonatomic, assign) NSInteger kNumberRow; 

//InfoToBind.m

@syntesize ... 

//delegate.m

#import "InfoToBind.m 


- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 

InfoToBinb *infoBind = [InfoToBind alloc]init]; 

images = [[NSMutableArray alloc]init]; 


//example 
InfoDictionary = [[NSDictionary alloc] initWithObjectsAndKeys: 
    @"name", @"Giulio", @"surname", @"Cesare", nil]; 

NSMutableArray dataSourceArray = [NSMutableArray alloc]init]; 

infoBind.kName = [InfoDictionary objectForKey:@"Name"]; 
infoBind.kSurname = [InfoDictionary objectForKey:@"Surname"]; 

NSUInteger x; 
for (x = 0; x <= dasourceArray.count; x++) { 
    infoBind.kNumberRow ++; 
} 
[dataSourceArray addObject:myClass]; 


[_tableView insertRowsAtIndexes:[NSIndexSet indexSetWithIndex:dataSourceArray.count] withAnimation:NSTableViewAnimationSlideLeft]; 

} 

- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView{ 

return [dataSourceArray count]; 
} 

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { 
// Used by bindings on the NSTableCellView's objectValue 
NSDictionary *item = [dataSourceArray objectAtIndex:row]; 
NSLog(@"item is %@", item); 

return item; 

}

// перетащить TextField в CellView и связать его с "вид ячейки таблицы" и добавить это значение: objectValue.kNumberRow

et voilà

 Смежные вопросы

  • Нет связанных вопросов^_^