0

我的 IB 中有一个 tableview。我正在尝试使用以下代码在 awakefromnib 中更改 IB 中存在的表视图的位置。

[[[_menuTableView superview] superview] setFrame:NSMakeRect(0, 0, 234, 1000)];
[[_menuTableView superview] setFrame:NSMakeRect(0, 0, 234, 1000)];

[_menuTableView setFrame:NSMakeRect(0, 0, 234, 1000)];

我写了这 3 行,因为我必须更改所有视图的位置(滚动视图、剪辑视图和表格视图。)

问题是即使在执行上述行之后,tableview 的位置也没有改变。如何做到这一点?

代码

#import "AppDelegate.h"

@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;
}
4

0 回答 0