objective-c – 以编程方式创建NSTableView(获取NSHeaderView显示的麻烦)(可可osx)

objective-c – 以编程方式创建NSTableView(获取NSHeaderView显示的麻烦)(可可osx),第1张

概述我以编程方式制作NSTableView,但由于某种原因,无论我做了什么,我无法使darn headerView显示。我必须以编程方式执行此 *** 作,而不是使用IB,因为我实际上是在一个名为clozure cl的IDE中开发这个小部件,它是一个包含可可桥的lisp ide。本来我以为这个问题可能是由我的开发环境引起的,但是我刚刚在Xcode中创建了一个仅使用客观C的例子,似乎问题仍然存在。我做的很简单: 我以编程方式制作NStableVIEw,但由于某种原因,无论我做了什么,我无法使darn headerVIEw显示。我必须以编程方式执行此 *** 作,而不是使用IB,因为我实际上是在一个名为clozure cl的IDE中开发这个小部件,它是一个包含可可桥的lisp IDe。本来我以为这个问题可能是由我的开发环境引起的,但是我刚刚在Xcode中创建了一个仅使用客观C的例子,似乎问题仍然存在。我做的很简单:

我在IB中创建一个窗口,并且在其创建的awkefromnib方法中,并且设置了一个表视图,这里是代码:

- (voID)awakeFromNib {mydatasource *data = [[mydatasource alloc] init];NStableColumn *column = [[NStableColumn alloc] initWithIDentifIEr:@"ID"];NStableVIEw *table = [[NStableVIEw alloc] initWithFrame: [[self                         contentVIEw]frame]];[table setDataSource:data];[table addtableColumn:column];[table addtableColumn:column];[[self contentVIEw] addSubvIEw:table];}

这是我的数据源对象的代码:

- (int)numberOfRowsIntableVIEw:(NStableVIEw *)atableVIEw{printf("NUM ROwS");    return 4;}- (ID)tableVIEw:(NStableVIEw *)atableVIEw objectValueFortableColumn:(NStableColumn    *)atableColumn row:(NSInteger)rowIndex{ printf("THE OTHER ONE");  return @"OKAY";}

使用这个代码,我得到一个带有两列和四行的窗口,每个单元格显示字符串“OKAY”,除了表没有标题外,这一切都很好。这可能是有意义的,除非我看到表头方法,它有一个初始化的标题,其框架的值是有意义的。我只是想知道为什么我看不到它。有没有一些特殊的魔法,我需要这样做,头会显示?我似乎没有在文档中找到任何线索。再次,这是必须的,这是以编程方式完成,所以这是没有帮助的,没有建议使用IB,我知道将有一个工作headerVIEw。非常感谢。

解决方法 这里有一些代码以编程方式创建一个带有滚动条和多个列的表视图。

// create a table vIEw and a scroll vIEwNSScrollVIEw * tableContainer = [[NSScrollVIEw alloc] initWithFrame:NSMakeRect(10,10,380,200)];NStableVIEw * tableVIEw = [[NStableVIEw alloc] initWithFrame:NSMakeRect(0,364,200)];// create columns for our tableNStableColumn * column1 = [[NStableColumn alloc] initWithIDentifIEr:@"Col1"];NStableColumn * column2 = [[NStableColumn alloc] initWithIDentifIEr:@"Col2"];[column1 setWIDth:252];[column2 setWIDth:198];// generally you want to add at least one column to the table vIEw.[tableVIEw addtableColumn:column1];[tableVIEw addtableColumn:column2];[tableVIEw setDelegate:self];[tableVIEw setDataSource:self];[tableVIEw reloadData];// embed the table vIEw in the scroll vIEw,and add the scroll vIEw// to our window.[tableContainer setdocumentVIEw:tableVIEw];[tableContainer setHasverticalScroller:YES];[[self contentVIEw] addSubvIEw:tableContainer];[tableContainer release];[tableVIEw release];[column1 release];[column2 release];

只是想我会发布这个任何人仍然寻找一个直接的答案。 总结

以上是内存溢出为你收集整理的objective-c – 以编程方式创建NSTableView(获取NSHeaderView显示的麻烦)(可可osx)全部内容,希望文章能够帮你解决objective-c – 以编程方式创建NSTableView(获取NSHeaderView显示的麻烦)(可可osx)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1041028.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存