前提・実現したいこと
質問させてください。
現在、macOS用アプリを作成していまして、その中で「サムネイル画像(imgView)をクリックするとウィンドウが立ち上がる」という動作を組み込もうとしています。
そのため、NSClickGestureRecognizerを使って下記の形で書いたのですが、"Thread 1:EXC_BAD_ACCESS code=1"というエラーが出てしまい上手く動作しません。
targetかactionでの指定方法がおかしいのではないかと推測はしているのですが、色々試してみても変わらないためご質問しました。
下記の記述でおかしいところはありますでしょうか。
発生している問題・エラーメッセージ
Thread 1:EXC_BAD_ACCESS code=1 address="xxxxxxxxxx"
該当のソースコード
Swift
1Public Class ImageWindow: NSObject { 2 init(){ 3 } 4 5 @objc public openImageWindow(_ recognizer:NSClickGestureRecognizer){ 6 print("成功") 7 } 8}
Swift
1Class ThumbImage: NSObject { 2 3 drawImage(){ 4 imgView.image = NSImage("[何かの画像].jpg") //imgView(NSImageView)は初期化済み 5 6 let imageWindow = ImageWindow() 7 let tap:NSClickGestureRecognizer = NSClickGestureRecognizer(target:imageWindow, action:#selector(ImageWindow.openImageWIndow(_:))) 8 imgView.addGestureRecognizer(tap) 9 } 10}
試したこと
addGestureRecognizer直後のimageViewの中身を見てみたところ、設定したはずのtarget・actionが設定されていないように見えました。
補足情報(FW/ツールのバージョンなど)
・Swift 3
・Xcode 8.2
・全体の作りの関係から、ウィンドウ用のクラス(ImageWindow)とサムネイル用のクラス(ThumbImage)の2つに分けています。
宜しくお願いいたします。
あなたの回答
tips
プレビュー