Автоматическое изменение размера нестабильной строки в соответствии с текстом

Я очень новичок в разработке для Mac, я хочу создать приложение для чата в OS X с использованием языка swift, я использую 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

0 ответов

Другие вопросы по тегам