首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向我的NSTableView添加可编辑的NSTextFieldCell

向我的NSTableView添加可编辑的NSTextFieldCell
EN

Stack Overflow用户
提问于 2011-05-17 12:53:39
回答 1查看 2.4K关注 0票数 2

我有一个NSTableView,它显示一些表示我的自定义对象的信息。我没有使用绑定。

通常,我创建自己的NSCells来显示数据,但这一次我想要一个NSTextFieldCell,它将显示对象的字符串值,并允许用户对其进行编辑。

我可以使用下面的代码成功添加NSTextFieldCell,但它是不可编辑的。

代码语言:javascript
复制
NSTextFieldCell *textField = [[NSTextFieldCell alloc] init];
[textField setFont:[NSFont fontWithName:@"Helvetica Bold" size:13]];
[textField setTextColor:[NSColor colorWithDeviceRed:0.1058823529 green:0.2117647059 blue:0.3294117647 alpha:1.0]];
[textField setStringValue:projectName];
[textField setEditable:YES];
[textField setBordered:NO];

[textField drawWithFrame:textRect inView:controlView];
[textField release];

有没有人能帮我一下?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-19 17:29:49

NSTextFieldCell是用flyweight模式实现的(我在"Cocoa Design pattern“一书中读到过),并且每列只有一个单元的实例。当您在界面构建器中编辑它时,您可以看到某种证据。当您单击以编辑NSTableView时,该单元格的单个实例将跳到以前所在的位置,并为您处理编辑操作。

正如您所说,这样做有利于单元格的视觉外观(绘图),也适用于NSTextField,因为每个NSTextField在每个视图中只能有一个单元格,因此当您想要编辑它时,它就在附近。

然而,在本例中,您创建了一个单元格,绘制它,然后通过在代码末尾释放它来将其踢出内存。那么,当您尝试编辑单元格时,您如何期望设置为可编辑的单元格存在呢?它已经不复存在了。

尝试在设置表格视图时创建单个单元格,并使用以下命令将自定义单元格设置为右侧的表格列:

代码语言:javascript
复制
- (void)setDataCell:(NSCell *)aCell

或者,您可以子类化NSTextFieldCell并在那里进行自定义,然后在界面构建器中设置列的单元格类(如果您处于前沿,则可以设置XCode 4!)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6026393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档