2017-03-23 6 views
0

選択に関係なく、マウスクリックに関連するテーブルビューを知る必要があります。検討する。clicked tableViewを検出する

func tableViewSelectionDidChange(notification: NSNotification) { 
    self.selectedTableView = (notification.object as! NSTableView) 
    switch selectedTableView { 
    case oneTableView?: 
     print("one") 
     break 
    case twoTableView?: 
     print("two") 
     break 
    default: 
     print("wtf \(selectedTableView)") 
    } 
} 

テーブル/ビュー 'two'は 'one'の詳細です。 'one'の行を選択すると、tableview 'two'の内容が変更されます(header - > detail)。しかし、ユーザーが既に選択された行をクリックした場合、選択としての通知は変更されませんでした。 Basi私はちょうどクリックされた最後のテーブルビュー/カラムを知る必要があります。

は、より良いのmouseDownアプローチです(道より困難)が、私ははないは、Objective-CのまたはのAppKitの「UI」同等のデリゲートメソッド参照してくださいか - 行または列の選択方法について> NSTableView - > NSTableViewの?あなたは何をすべき

+1

なぜあなたは 'UITableViewDelegate'を使用せず、この問題のすべてを自分自身で保存しないでください。 – zombie

+0

' UITableViewDelegate'はUIKitであり、Cocoaではありません。 –

+0

関数の最後に 'func tableView(_ tableView:NSTableView、shouldSelectRow row:Int) - > Bool'を使用してみて、関数の最後でtrueを返し、その前に操作してください。 – vitormm

答えて

0

まあ、OSX上でシエラの現在のAppKit(8.2.1)の状態で、これはなんとかではありません。

私のguiは、ヘッダー/ディテールtableViewsのセットに対して単一のアクションコントロールを使用していますが、どちらが有効であるかを知る必要がありました。したがって、ヘッダービューの選択を示すディテールテーブルビューで空の選択を強制しますが使用される。

しかし、なぜosx swiftにiosやobjective-cと同等のデリゲートメソッドセットがないのかを知りたいのですが?

0

このUITableViewDelegate関数内では、次のとおりです。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    if let tableOne = tableView as? TableOne {// do code here to other table} 
    else if let tableTwo = tableView as? TableTwo {//do code here to other table} 
} 
+1

これはosxです。 osxの同等のルーチンはありますか?私はNSTableViewを指定するこの関数を持っていますが、呼び出されませんか? – slashlos

関連する問題