2012-02-03 126 views
1

我想通过编程创建NSTextField。我是Mac App开发新手。
任何人都可以帮助我吗?如何以编程方式创建NSTextField?

更新:
我想这个代码

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    NSView *myView = [[NSView alloc] init]; 
    NSRect frameRect = NSMakeRect(20,20,100,140); 
    NSTextField *myTextField = [[NSTextField alloc] initWithFrame:frameRect]; 
    [myView addSubview:myTextField]; 
} 

这什么都不做。如果我在任何地方都错了,请纠正我。

谢谢。

回答

1

它看起来像你创建一个NSTextField OK,但你不能在视图层次将它添加到任何地方可见。您的应用程序可能包含一个或多个NSWindow实例;如果您希望某个视图出现在特定窗口中,则应该将其添加为该窗口内容视图的子视图。

+0

我正在为此而努力。但我不知道如何在我的窗口中添加视图。我的意思是''[[self window] addcontentview:我的视图]'但是找不到方法。你能帮我吗。 – iUser 2012-02-03 13:47:36

+2

不要替换内容视图,除非您希望您的文本字段填充整个窗口。相反,将您的文本字段添加到内容视图(或其子视图),如[self.window.contentView addSubview:myTextField]。 – hoshi 2012-02-04 01:30:34

+0

@hoshi:在我的情况下什么都不做。不知道是什么问题.. !!! – iUser 2012-02-04 11:50:22

2

以可编程方式创建UI元素在Cocoa中非常简单。

它包括两个步骤:

  1. 创建视图和帧设置为它。

  2. 将它作为子视图添加到任何超级视图中。

以下代码片段可以帮助您更好地理解。

NSRect frameRect = NSMakeRect(20,20,40,40)// This will change based on the size you need 

NSTextField *myTextField = [[NSTextField alloc] initWithFrame:frameRect]; 

[myView addSubView:myTextField]; 
+0

感谢您的快速回复。你能帮我多点吗?我更新了我的问题。请看一下。 – iUser 2012-02-03 12:56:00