【问题标题】:How to create NSTextField programmatically?如何以编程方式创建 NSTextField?
【发布时间】:2012-02-26 00:51:23
【问题描述】:

我想以编程方式创建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];
}

这没有任何作用。如果我在任何地方错了,请纠正我。

谢谢。

【问题讨论】:

    标签: macos cocoa xcode4.2 nstextfield


    【解决方案1】:

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

    它涉及两个步骤:

    1. 创建视图并为其设置框架。

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

    跟着sn-p你会帮助你更好地理解。

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

    【讨论】:

    • 感谢您的快速回复。你能帮我多一点吗。我已经更新了我的问题。请看一下。
    【解决方案2】:

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

    【讨论】:

    • 我实际上正在为此努力。但我不知道如何在我的窗口中添加视图。我的意思是[[self window] addcontentview:my view] 之类的东西,但找不到路。你能帮帮我吗?
    • 不要替换内容视图,除非您希望您的文本字段填满整个窗口。相反,将您的文本字段添加到内容视图(或其子视图),如 [self.window.contentView addSubview:myTextField]。
    • 我明白了..!!谢谢..!! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-13
    • 2013-03-10
    • 2013-11-15
    • 2013-12-28
    • 2011-02-10
    • 2011-04-02
    • 2011-03-01
    相关资源
    最近更新 更多