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

标签 user-interface swift

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

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

最佳答案

您应该向 NSWindow 的 contentView 添加内容。

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

关于user-interface - 如何在 XCode 中使用 Swift 创建新的 NSWindow 并以编程方式向其添加内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26292505/

相关文章:

java - 如何使用按钮操作将字符串传递给类

ios - 在没有更多上下文的情况下,表达式类型不明确 - 在 Facebook 包装器中

python - 在 wxPython 中防止面板增长

python - Kivy - 文本换行工作错误

qt - 使用 PyQt 连接 QTableView selectionChanged 信号会产生段错误

android - 在 Android 中使用负边距是一种不好的做法吗?

swift - 如何切换数据库?

ios - 如何在 Swift 中更新 TableView 中的行数?

ios - 如何在 Collection View 中高效地显示不同的 UIView?

ios - tableView 中的 searchBar 查询(Swift)