お知らせ:


 ◇ YouTube Apple Japan チャンネル で有用なヒントや使い方を配信中です。
 ◇ iOS 向け Apple サポート App のバージョン 2.4.1 が公開されました。

お知らせ: macOS Mojave にアップグレードする


macOS Mojave には、ダークモードやスタックなどの新機能や、3 つの新しい内蔵 App が新たに加わり、クリックするたびにさらに多くのことができるようになります。 macOS Mojave へのアップグレード方法はこちら >

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

質問:

質問: 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)

投稿日

返信
スレッドに付いたマーク この回答で解決
回答:
回答:

イベント関連はクラスに依りますが、大抵の場合、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"に投稿するのが良いのかも知れません?)

投稿日

ページコンテンツが読み込まれました

スレッドに付いたマーク この回答で解決

2017/11/29 17:59 MC-8 への返信 MC-8 への返信

イベント関連はクラスに依りますが、大抵の場合、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"に投稿するのが良いのかも知れません?)

2017/11/29 17:59

返信 参考になった (1)

2017/11/29 18:25 hohokihai への返信 hohokihai への返信

hohokihai さん、回答頂きましてありがとうございます。

期待通りの結果が得られました。


投稿したカテゴリーですが、これから気を付けます。

2017/11/29 18:25

返信 参考になった
ユーザのユーザプロフィール: MC-8

質問: NSTableView について