Я новичок в разработке IOS / IOX. Я пробовал много сайтов для загрузки данных в мою таблицу на OSX swift с помощью NSTableView. Но все закончилось неудачей. Процедура, которую я сделал, ссылалась на View-Based NSTableView в Swift - Как сделать

  1. Перетащите NSTableView, что было прекрасно видно, когда я запустил код.
  2. Выбрал первый столбец и присвоил идентификатору значение «Список» после установки количества столбцов равным 1.
  3. В appdelegate.swift я вставил как

    class AppDelegate: NSObject, NSApplicationDelegate,NSTableViewDataSource,NSTableViewDelegate {
    
        func applicationDidFinishLaunching(aNotification: NSNotification?) {
    
        }
    
        func applicationWillTerminate(aNotification: NSNotification?) {
    
        }
    
        func numberOfRowsInTableView(aTableView: NSTableView!) -> Int {
    
            println("reached 1")
            return 10
        }
    
        func tableView(tableView: NSTableView, viewForTableColumn: NSTableColumn, row: Int) -> NSView {
    
            println("reached 2")
    
            var cell = tableView.makeViewWithIdentifier("List", owner: self) as NSTableCellView
    
            cell.textField.stringValue = "Hey, this is a cell"
    
            return cell
    
        }
    }
    
  4. Затем я попытался установить делегата и источник данных в качестве Appdelegate для табличного представления, выбрав таблицу и указав на «App Delegate» в «Application Scene». Но это не связывало

  5. Когда я запускаю программу, была загружена таблица без ячеек

Любая помощь приветствуется.

3
Abin 10 Дек 2014 в 12:48

3 ответа

Лучший ответ
 func tableView(tableView: NSTableView, viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView?
{
    if tableView.identifier=="tableViewIdentifier" {

           let cellView = tableView.makeViewWithIdentifier("List", owner: self) as! NSTableCellView
            cellView.textField?.stringValue = "Hey, this is a cell"
            return cellView
        }
     return nil
    }

Установить идентификатор в tableview удаленной таблицы также установить идентификатор в столбец таблицы, установить делегат и источник данных для контроллера представления, в котором содержится таблица.

0
Abin 21 Янв 2016 в 08:55

Самый простой способ - выбрать представление таблицы в файле XIB, а затем на панели «Утилиты» справа выбрать третий значок справа (стрелка, указывающая вправо). Также убедитесь, что вы показываете схему документа, щелкнув значок в нижнем левом углу окна Interface Builder. С панели «Утилиты» вы можете просто перетащить из круга делегата и источника данных в свой AppDelegate в структуре документа.

0
Daniel 10 Дек 2014 в 11:32

В вашем случае при использовании раскадровки вы должны сделать свой контроллер представления источником данных и делегировать представление таблицы, потому что они содержатся в одной сцене. Сам класс называется ViewController в шаблонах проектов Xcode.

Итак, просто переместите код из делегата приложения для просмотра контроллера и подключите все вещи в раскадровке.

0
Denys Stas 21 Янв 2016 в 09:21