Forbid arrows action in NSCollectionView
up vote
3
down vote
favorite
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.
swift macos nscollectionview
New contributor
add a comment |
up vote
3
down vote
favorite
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.
swift macos nscollectionview
New contributor
Why are you telling the controller to become first responder rather than the collection view you want in focus?
– Callam
Nov 8 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 8 at 10:29
1
Please add yourViewController
code
– Callam
Nov 8 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.". TryacceptsFirstResponder
: "Whether the responder accepts first responder status.".
– Willeke
Nov 8 at 11:10
add a comment |
up vote
3
down vote
favorite
up vote
3
down vote
favorite
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.
swift macos nscollectionview
New contributor
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.
swift macos nscollectionview
swift macos nscollectionview
New contributor
New contributor
edited Nov 8 at 10:18
Bohdan Savych
6071024
6071024
New contributor
asked Nov 8 at 10:02
Tabula Rasa
193
193
New contributor
New contributor
Why are you telling the controller to become first responder rather than the collection view you want in focus?
– Callam
Nov 8 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 8 at 10:29
1
Please add yourViewController
code
– Callam
Nov 8 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.". TryacceptsFirstResponder
: "Whether the responder accepts first responder status.".
– Willeke
Nov 8 at 11:10
add a comment |
Why are you telling the controller to become first responder rather than the collection view you want in focus?
– Callam
Nov 8 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 8 at 10:29
1
Please add yourViewController
code
– Callam
Nov 8 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.". TryacceptsFirstResponder
: "Whether the responder accepts first responder status.".
– Willeke
Nov 8 at 11:10
Why are you telling the controller to become first responder rather than the collection view you want in focus?
– Callam
Nov 8 at 10:23
Why are you telling the controller to become first responder rather than the collection view you want in focus?
– Callam
Nov 8 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 8 at 10:29
@Callam Because in controller I have additional key-press logic. I've tried both variants and they didn't work.
– Tabula Rasa
Nov 8 at 10:29
1
1
Please add your
ViewController
code– Callam
Nov 8 at 10:36
Please add your
ViewController
code– Callam
Nov 8 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 8 at 11:10
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 8 at 11:10
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Tabula Rasa is a new contributor. Be nice, and check out our Code of Conduct.
Tabula Rasa is a new contributor. Be nice, and check out our Code of Conduct.
Tabula Rasa is a new contributor. Be nice, and check out our Code of Conduct.
Tabula Rasa is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53205382%2fforbid-arrows-action-in-nscollectionview%23new-answer', 'question_page');
}
);
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Why are you telling the controller to become first responder rather than the collection view you want in focus?
– Callam
Nov 8 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 8 at 10:29
1
Please add your
ViewController
code– Callam
Nov 8 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.". TryacceptsFirstResponder
: "Whether the responder accepts first responder status.".– Willeke
Nov 8 at 11:10