如何在XCode中使用Swift创建一个新的NSWindow并以编程方式向其添加内容?

时间:2014-10-10 05:27:29

标签: user-interface swift

我来自Java的背景,我正在尝试使用swift来创建OSX和iOS应用程序。我当前的项目本质上是一个flashcard应用程序,它需要能够为基于文本的用户提示创建一个弹出窗口(即,询问卡的问题是什么,或者添加String标签以按类型对闪卡进行排序)。这是我到目前为止编写的代码:

//Pulls up a prompt box to add tags
@IBAction func AddTagButton(sender: AnyObject) {
    //Declare new subwindow
    var win = NSWindow(contentRect: NSMakeRect(100, 100, 400, 150),
        styleMask: 1 | 2 | 4 | 8,
        backing: NSBackingStoreType.Buffered, defer: true);

    win.title = "Tag Adder";
    win.center();

    //Add the window to the main viewer
    window.addChildWindow(win, ordered:NSWindowOrderingMode.Above);

    var controller = NSWindowController(window: win);
    controller.showWindow(self);
}

这会打开一个新窗口,可以关闭,调整大小,最小化等等。我需要以编程方式将WrappedTextField添加到此窗口,但我找不到任何有关如何执行此操作的资源。在Java中,最接近的类比将是

JFrame frame = new Jframe();
JLabel label = new JLabel("Sample text");
frame.add(label);                                //How is this done in Swift?
frame.setVisible(true);

我通过修改XCode中的.xib(Xcode 6,Beta版本6)编写了主要的NSWindow,但我无法弄清楚如何使用WYSIWYG编辑器在推送时出现一个窗口一个按钮。我能做的最好的事情是制作另一个默认最小化/隐藏的NSWindow,但是当你按下按钮时它会显示出来(这不是一个非常好的解决方案)。我发现的另一个功能是NSAlert,但没有用户输入数据的文本字段。我的问题是如何通过修改上述方法或使用XCode提供的.xib GUI编辑器,向按下按钮弹出的NSWindow添加内容?

1 个答案:

答案 0 :(得分:2)

您应该将内容添加到NSWindow的contentView。

let textField =. NSTextView()
textView.stringvalue = "Some string"
textView.frame = CGRectMake(10,20,50,400)
 mywindow.contentView.addSubview(textView)