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.










share|improve this question









New contributor




Tabula Rasa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • 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.". Try acceptsFirstResponder: "Whether the responder accepts first responder status.".
    – Willeke
    Nov 8 at 11:10















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.










share|improve this question









New contributor




Tabula Rasa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • 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.". Try acceptsFirstResponder: "Whether the responder accepts first responder status.".
    – Willeke
    Nov 8 at 11:10













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.










share|improve this question









New contributor




Tabula Rasa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











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






share|improve this question









New contributor




Tabula Rasa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Tabula Rasa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited Nov 8 at 10:18









Bohdan Savych

6071024




6071024






New contributor




Tabula Rasa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked Nov 8 at 10:02









Tabula Rasa

193




193




New contributor




Tabula Rasa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Tabula Rasa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Tabula Rasa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • 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.". Try acceptsFirstResponder: "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










  • @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.". Try acceptsFirstResponder: "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

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});






Tabula Rasa is a new contributor. Be nice, and check out our Code of Conduct.










 

draft saved


draft discarded


















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





































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.










 

draft saved


draft discarded


















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.















 


draft saved


draft discarded














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




















































































Popular posts from this blog

Schultheiß

Liste der Kulturdenkmale in Wilsdruff

Android Play Services Check