小编Sud*_*che的帖子

可可:没有 NSScrollView 的 NSTextView

我正在使用聊天窗格作为 NSTableView 构建一个聊天应用程序,并且每条消息都保存在该表中一行的自定义单元格中。我需要使表格行高相对于消息大小。在尝试计算 NSTextField 中的换行文本的大小(保存消息)经历了许多挫折之后,然后发现 NSTextField 对此非常不利(参见此处,我的发现证实了这一点。此外,NSTextField 完全随机调整大小有时(带有“?”的单个消息将调整为大约 5 行高......)我希望 NSTextView 会避免),我决定使用 NSTextView 代替。

但是我无法将 NSTextView 添加到我的应用程序中,它被嵌入到 NSScrollView 中。我当然不希望我的消息框滚动——我希望它们根据内容的大小而增长。但是我无法将 TextView 拖出 ScrollView。我尝试添加一个自定义视图并将其设置为 TextView,但是尽管我按照我完成 TextField 的方式将它连接到我的 ViewController,但它没有显示任何内容。

macos cocoa nstextview nsscrollview swift

5
推荐指数
0
解决办法
663
查看次数

Cocoa Mac:从 AppDelegate 创建窗口

我正在寻找一个从 AppDelegate 创建窗口的简单(和 Mac 特定的)示例。我的程序有一个登录页面,可能需要也可能不需要在应用程序启动时显示,具体取决于用户是否已经登录。

到目前为止,我的 AppDelegate 的 applicationDidFinishLaunching 看起来像这样:

func applicationDidFinishLaunching(_ aNotification: Notification) {
    // Insert code here to initialize your application

    let main = NSStoryboard(name : "Main", bundle: nil).instantiateController(withIdentifier: "MainWindow") as! NSWindowController

    main.window?.becomeFirstResponder()

    let mainVc = NSStoryboard(name:"Main", bundle: nil).instantiateController(withIdentifier: "MainViewController") as! ViewController
    main.window?.contentViewController = mainVc
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行应用程序时,什么也没有发生。我应该注意到我已经取消了应用设置的“主界面”属性。如果我不取消设置,则会出现我想要的两个版本的窗口,这表明我对上述内容几乎是正确的。

我错过了什么?

macos cocoa swift

5
推荐指数
1
解决办法
2279
查看次数

标签 统计

cocoa ×2

macos ×2

swift ×2

nsscrollview ×1

nstextview ×1