2017-12-30 45 views
0

私はMacOSにアプリケーションを移植しています.NITableViewを使ってUITableViewを再実装する必要がありますが、動作させるにはいくつかの問題があります。Cocoa:UITableViewをNSTableViewに変換しますか?

iOSの私のレイアウトは、基本的に、log.count(以下を参照)にある行数を持つ単数列のスクロール可能なテキストセルのリストです。

テーブルビューをメインビューに追加した後、コンテンツモードを「セルベース」に変更し、列を「1」に変更し、「ヘッダー」をuntickedにしました。

私はViewControllerにプロトコルNSTableViewDelegate & NSTableViewDataSourceを与え、それを両方のデリゲートとして設定し、次にテーブルビューのコンセントを設定しました。

私は私が唯一の3つの機能のNSバージョンを再実装する必要があることを願っています:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
UITableView.reloadData() 

他のすべては非常に単純であるとして。参考のため

これは私のiOSのUITableViewは出口をコントローラを表示次のとおりです。事前に

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 

    @IBOutlet weak var tableView: UITableView! 

    var log = ["Welcome!"] 

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return log.count 
    } 

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "cell") 
     cell.textLabel?.text = log[indexPath.row] 
     return cell 
    } 

    func appendToLog(string: String) { 
     log.append(string) 
     tableView.reloadData() 
    } 

} 

ありがとう!

+0

https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/TableView/Introduction/Introduction.html([表ビューは、Mac用のプログラミングガイド]仮定と希望、読まないでください。 )。 – Willeke

答えて

-2
class ViewController: NSViewController, NSTableViewDelegate, NSTableViewDataSource { 

    @IBOutlet weak var tableView: NSTableView! 

    var log = ["Welcome!"] 

    func numberOfRows(in tableView: NSTableView) -> Int { 
     return log.count 
    } 

    func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? { 
     let cell = NSTextFieldCell(textCell: log[row]) 
     return cell 
    } 

    func appendToLog(string: String) { 
     log.append(string) 
     tableView.reloadData() 
    } 

} 
関連する問題