Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 根据文本自动调整nstable行的大小_Swift_Macos_Nstableview_Nstablecellview - Fatal编程技术网

Swift 根据文本自动调整nstable行的大小

Swift 根据文本自动调整nstable行的大小,swift,macos,nstableview,nstablecellview,Swift,Macos,Nstableview,Nstablecellview,我对Mac开发非常陌生,我希望使用swift语言在OS X中创建一个聊天应用程序,我使用NStableView显示消息,表格行的高度应根据文本大小进行换行,如下图所示 正如我们可以显示的,文本将根据窗口大小进行换行 我的代码如下 import Foundation import Cocoa class ChatWindowVC : NSViewController,NSTableViewDataSource,NSTableViewDelegate{ @IBOutlet var ta

我对Mac开发非常陌生,我希望使用swift语言在OS X中创建一个聊天应用程序,我使用NStableView显示消息,表格行的高度应根据文本大小进行换行,如下图所示

正如我们可以显示的,文本将根据窗口大小进行换行

我的代码如下

import Foundation
import Cocoa
class ChatWindowVC : NSViewController,NSTableViewDataSource,NSTableViewDelegate{

    @IBOutlet var tableView: NSTableView!
    private var arr = [String]()
    @IBOutlet var message: NSTextView!
    private var hgt:CGFloat = 20

    @IBAction func send(sender: NSButton) {
        if let textStorage = message.textStorage{
            if !textStorage.string.isEmpty{
                let str = textStorage.string
                arr.append(str)
                // textStorage.mutableString.setString("")


                tableView.reloadData()
            }
        }
        print("Send.....\(message.textStorage?.string)")
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        arr.append("ONE")
        arr.append("TWO")
        arr.append("THREE")
    }

    func numberOfRowsInTableView(aTableView: NSTableView) -> Int
    {
        let numberOfRows:Int = arr.count
        return numberOfRows
    }

    func tableView(tableView: NSTableView, objectValueForTableColumn tableColumn: NSTableColumn?, row: Int) -> AnyObject?
    {
        return arr[row];
    }

    func tableView(tableView: NSTableView, viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView? {

        let result : ChatCell = tableView.makeViewWithIdentifier("ChatCell", owner: self) as! ChatCell
        result.sent.stringValue = arr[row]

        return result
    }


    func tableView(tableView: NSTableView, heightOfRow row: Int) -> CGFloat {
        let str = arr[row]
        let c:Int = str.characters.count
        let cgfloat = CGFloat(c)
        print(cgfloat)
        return cgfloat
    }
}
请引导我

我的问题是无法根据窗口大小设置行高

附加的屏幕截图是我的目标的一个示例

如果您能给出一个示例或代码片段,那就太好了

非常感谢


Amith

那么你的问题是什么?@rocky我已经更新了这个问题,很抱歉提到这个问题谢谢你为什么我的答案被@George Stocker删除了。他甚至不懂斯威夫特语。@Abin Joseph答案正是我想要的,乔治先生被删除了,这真的不公平。我发布了一个问题,得到了确切的答案,然后我将我的观点分享给了被回答的人,我认为乔治无权这么做。答案在哪里?为什么@George?删除它?