4

I'm newbe in macOS development that's why I'm not sure that I've formulated my question correctly. I have multiple NSCollectionView on screen. One of them is main and in other I can select rating, colors etc.. The problem is that when I select color and press right/left arrow I begin moving in colorCollectionView not in mainCollectionView. Code for handling keys press events is inside of ViewController and it obviously not being called. I suspect that issue is connected with isFirstResponder property. That's why I've created subclass for my not-main collections:

final class NotFirstResponderCollectionView: NSCollectionView {
    override var isFirstResponder: Bool { return false }
}

But that didn't resolve problem. Also I've tried to explicitly call self.becomeFirstResponder inside of ViewController and .resignFirstResponder for my not-main collections. That doesn't help me too. Thanks in advance.

Bohdan Savych
  • 3,310
  • 4
  • 28
  • 47
Tabula Rasa
  • 183
  • 10
  • Why are you telling the controller to become first responder rather than the collection view you want in focus? – Callam Nov 08 '18 at 10:23
  • @Callam Because in controller I have additional key-press logic. I've tried both variants and they didn't work. – Tabula Rasa Nov 08 '18 at 10:29
  • 1
    Please add your `ViewController` code – Callam Nov 08 '18 at 10:36
  • `isFirstResponder`: "Whether the CollectionView is its window's current firstResponder. This bindable property is useful for determining appropriate appearance for selected items.". Try `acceptsFirstResponder`: "Whether the responder accepts first responder status.". – Willeke Nov 08 '18 at 11:10

0 Answers0