cocoa osx 以编程方式添加 nstextfields

cocoa osx add nstextfields programmatically

我正在为 osx 创建一个项目,我需要以编程方式将多个 NSTextfields 添加到自定义视图 (NSView)。我不知道如何正确地实现这一目标。

这是我需要做的:

我知道如何创建 NSTextfiedls 以及如何将它们添加到 NSView,但我不知道如何配置它们以像图像中那样显示并在代码中为它们设置任何约束。我正在使用自动版式。

您可以为每个文本字段指定框架。 喜欢

NSRect rect = NSMakeRect(xPos,SuperView.frame.size.height - (padding + control_Height),control_Width,control_Height);
`for(int i = 0;i < 3;i++)
{

NSTextField *textField = [[NSTextField alloc] initWithFrame:rect];
[superView addSubView:textField];
[textField release];
rect.origin.y -= (padding + control_Height);

}`

看看使用 NSStackView class 来保存您的文本字段。对于简单的设置 - 如您的屏幕截图中的设置 - 此 class 会为您自动布局。

为了帮助您掌握它,Apple 提供了一个名为 InforBarStackView 的示例演示。


下面的屏幕截图来自一个程序,它在 Interface Builder 中将一个堆栈视图实例添加到一个原本为空的 window。

使用以下代码添加了文本字段:

// AppDelegate has a stackView outlet
for each in 0...2 {
    var f = NSTextField()
    f.translatesAutoresizingMaskIntoConstraints = false
    stackView.addView(f, inGravity:.Top)
}