2014-10-10 20 views
2

我来自Java的背景,我试着用swift创建OSX和iOS应用程序。我目前的项目本质上是一个闪存卡应用程序,它需要能够为基于文本的用户提示创建一个弹出窗口(即询问卡片的问题,或者添加字符串标签以按类型对闪存卡进行排序)。这里是我放在一起迄今为止代码:如何在XCode中使用Swift创建一个新的NSWindow并以编程方式向其添加内容?

//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中,最接近的比喻将沿着我通过修改的XCode(Xcode中6,Beta版6)的.xib写的主要NSWindow的

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

线的东西,但我想不通的我的生活如何使用所见即所得的编辑器,使一个窗口出现在按钮上。我能做的最好的做法是创建另一个默认最小化/隐藏的NSWindow,但是当你按下按钮时(这不是一个非常好的解决方案),它会显示出来。我发现的另一个特性是NSAlert,但没有用于输入数据的文本字段。我的问题是,如何通过修改上述方法或使用XCode提供的.xib GUI编辑器来添加内容到按下按钮弹出的NSWindow?

回答

2

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

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

我认为'textView.stringvalue'被认为是'textView.stringValue'大写'V'。 – 2017-04-24 22:42:51

相关问题