如何根據特定條件動態更改表視圖中顯示的行數。如何更改動態顯示在nstableview中的行數
我有一個要求,需要表視圖不顯示任何空行或空白。
如何做到這一點?
Thnx提前。
@implementation AppDelegate
@synthesize searchField;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
}
-(id)init
{
self = [super init];
if (nil!= self)
{
_arrayContents= [[NSMutableArray alloc] initWithObjects:@"a",@"as",@"sd",@"dfg",@"fh",@"sdf",@"ret",@"sdf",@"dsfxc",@"awert",@"xsdfcvg", nil];
_searchedArrayContents = [NSMutableArray arrayWithCapacity:[_arrayContents count]];
_menuArray = [[NSMutableArray alloc] initWithObjects:@"123",@"1231234",@"235435",@"5345345", nil];
}
return self;
}
-(void)awakeFromNib
{
// [_menuTableView setHidden:YES];
// [[[_menuTableView superview] superview] setHidden:YES];
[[[_menuTableView superview] superview] setFrame:NSMakeRect(100, 0, 234, 1000)];
[[_menuTableView superview] setFrame:NSMakeRect(0, 0, 234, 1000)];
[_menuTableView setFrame:NSMakeRect(0, 0, 234, 1000)];
}
- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView
{
if (aTableView==_menuTableView)
{
return [_menuArray count];
}
if ([[searchField stringValue] length]>0 || [[_tokenField stringValue] length]>0 || [[_textField stringValue] length]>0)
{
return [_searchedArrayContents count];
}
if (aTableView==_tableView)
{
return [_arrayContents count];
}
return 0;
}
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
if (aTableView==_menuTableView)
{
return [_menuArray objectAtIndex:rowIndex];
}
if ([[searchField stringValue] length]>0 || [[_tokenField stringValue] length]>0)
{
return [_searchedArrayContents objectAtIndex:rowIndex];
}
if (aTableView==_tableView)
{
return [_arrayContents objectAtIndex:rowIndex] ;
}
return nil;
}
我試圖在上面的代碼中動態改變TableView的框架位置。但它不改變框架。它仍處於我在Interface Builder中拖放的位置。
您需要以編程方式更改NSTableView的數據源,你需要刷新表視圖每當源的變化。 – Ganapathy
到目前爲止你做了什麼?如果你顯示了一些你的代碼,你不會混淆那些試圖幫助你的人。 –
@Ganapathy:我正在相應地更改數據源。我的要求是我不想顯示錶視圖的未使用的行。它應該只顯示實際的號碼。存在於數據源中的元素,而不顯示任何空行。 –