2012-10-24 39 views
0

我很困惑,为什么下面的代码不工作,我想实现的是在NSRect中有一个NSTextfield,但我不确定它是否可能以及它是否可能是如何做到这一点,我想下面的代码,但它不工作...cocoa - 添加NSTextfield到NSRect

NSRect city_label = NSMakeRect(20, 20, 7, 7); 

NSTextField *label = [[NSTextField alloc] initWithFrame:city_label]; 

label.stringValue = @"Contents of NSTextfield"; 

中的NSRect获取一个的NSView

任何人任何想法如何界定呢?

回答

1

NSRect不是可以“在NSView中绘制”的实体类型 - 它不是NSView的子视图的实例。一个NSRect只是一个C struct描述大小(宽度和高度)和原点(x和y)。

使用其框架初始化NSTextField(请记住,这里的原点与将要将文本字段添加为子视图的视图相关)后,必须将其添加到您希望作为子视图的视图它的超级观点。假设一下,如果我们在NSViewController的自定义子类,你的代码只需要这个额外的行

[self.view addSubview:label]; 
+0

感谢那些帮助我在一个NSView的一个子类,我想,所以我删除了'.view'从'[self.view addSubview:label];'并且工作 –