如何通过编程创建NSTextField?

3
我希望能够通过编程创建 NSTextField。我是Mac应用程序开发的新手,有人可以帮助我吗?
更新:
我尝试了这段代码。
- (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];
}

这并没有任何作用。如果我有任何错误,请纠正我。

谢谢。

2个回答

4

在Cocoa中,通过编程方式创建UI元素非常简单。

它包含以下两个步骤:

  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];

谢谢您的快速回复。您能再帮我一点吗?我已经更新了我的问题,请看一下。 - iUser

1

看起来你正在创建一个 NSTextField,但你没有将它添加到视图层次结构中的任何可见位置。你的应用程序可能包含一个或多个 NSWindow 实例;如果你想让一个视图出现在特定的窗口中,你应该将它作为该窗口内容视图的子视图添加。


我实际上一直在尝试这个。但是我不知道如何在我的窗口中添加一个视图。我的意思是类似于 [[self window] addcontentview:my view],但是找不到方法。你能帮我吗?谢谢。 - iUser
2
不要替换内容视图,除非你想让你的文本字段填满整个窗口。相反,将你的文本字段添加到内容视图(或其子视图)中,如[self.window.contentView addSubview:myTextField]。 - hoshi
我明白了..!! 谢谢..!! :) - iUser

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接