Apple の脅威の通知と金銭目当てのスパイウェアへの対策について

しばらく返答が寄せられていないようです。 再度ディスカッションを開始するには、新たに質問してください。

NSTableView について

環境:macOS High Sierra 10.13.1, Xcode 9.1, Swift 4.0.1

TableView は任意の行上でマウスボタンを押すと、その行が選択されハイライトになります。

その後のマウスボタンが放された時のイベントを拾いたいと思います。

すぐに思い付いたのは、NSTableView のサブクラスを作成して、その mouseUp (with event) でイベントを

拾うという事でしたが、結果は目的のイベントを拾う事が出来ませんでした。

試行錯誤していますが、このイベントを拾う事は不可能でしょうか?

iMac (27-inch, Late 2012), macOS High Sierra (10.13.1)

投稿日 2017/11/29 13:27

返信
スレッドに付いたマーク ベストな回答

投稿日 2017/11/29 17:59

イベント関連はクラスに依りますが、大抵の場合、Delegateプロトコルで拾うことができます。

今回の場合は、NSTableViewDelegateです。

https://developer.apple.com/documentation/appkit/nstableviewdelegate/


下記コードでクリックイベント(MouseUp)を拾えると思いますが、如何でしょう?

func tableViewSelectionDidChange(_ notification: Notification) { DispatchQueue.main.async { if self.table.selectedRowIndexes.count != 0 { print("didMouseUp: \(self.table.selectedRowIndexes.map({ $0 }))") } } }

"selectedRowIndexes"の判定は、カラムのクリックを除外する為です。

ユーザがアップロードしたファイル


(あと、この手の話は"Mac OS X Technologies"に投稿するのが良いのかも知れません?)

返信: 2

返信はありません。

NSTableView について

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple ID を使ってご参加ください。