NSTableView bound to NSArrayController but not showing data until another object is added












0















Binding is working but it seems ridiculous that I need to add an object in order for the NSTableView to show the data. Calling the NSArrayController.rearrangeObjects and the NSTableView.reloadData didn't change anything. Should this be somewhere else beside viewDidLoad? Is there a property I haven't set? Thanks!



override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.

//categories is an array of strings
categories = db.categories

categoryArrayController.addObject("")
categoryArrayController.removeObject("")
}









share|improve this question























  • How and when do you set the contents of the array controller?

    – Willeke
    Jan 18 at 21:57











  • In the attributes inspector of the Array Controller, categories is set as the entity name (it's also a property of the view controller). The array controller is also bound to the view controller with the model key path set to categories. The categories array has about 25 entries but they are only shown in the table view after an object is added or removed. The array controller seems to need a nudge to reload the objects into the table but this is an awkward solution. I hope there is a better way.

    – Pam
    Jan 19 at 0:41











  • Should the array controller fetch the categories (array of NSMangedObject) or use the categories property of the view controller? Is categories marked with @objc dynamic?

    – Willeke
    Jan 19 at 2:42
















0















Binding is working but it seems ridiculous that I need to add an object in order for the NSTableView to show the data. Calling the NSArrayController.rearrangeObjects and the NSTableView.reloadData didn't change anything. Should this be somewhere else beside viewDidLoad? Is there a property I haven't set? Thanks!



override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.

//categories is an array of strings
categories = db.categories

categoryArrayController.addObject("")
categoryArrayController.removeObject("")
}









share|improve this question























  • How and when do you set the contents of the array controller?

    – Willeke
    Jan 18 at 21:57











  • In the attributes inspector of the Array Controller, categories is set as the entity name (it's also a property of the view controller). The array controller is also bound to the view controller with the model key path set to categories. The categories array has about 25 entries but they are only shown in the table view after an object is added or removed. The array controller seems to need a nudge to reload the objects into the table but this is an awkward solution. I hope there is a better way.

    – Pam
    Jan 19 at 0:41











  • Should the array controller fetch the categories (array of NSMangedObject) or use the categories property of the view controller? Is categories marked with @objc dynamic?

    – Willeke
    Jan 19 at 2:42














0












0








0








Binding is working but it seems ridiculous that I need to add an object in order for the NSTableView to show the data. Calling the NSArrayController.rearrangeObjects and the NSTableView.reloadData didn't change anything. Should this be somewhere else beside viewDidLoad? Is there a property I haven't set? Thanks!



override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.

//categories is an array of strings
categories = db.categories

categoryArrayController.addObject("")
categoryArrayController.removeObject("")
}









share|improve this question














Binding is working but it seems ridiculous that I need to add an object in order for the NSTableView to show the data. Calling the NSArrayController.rearrangeObjects and the NSTableView.reloadData didn't change anything. Should this be somewhere else beside viewDidLoad? Is there a property I haven't set? Thanks!



override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.

//categories is an array of strings
categories = db.categories

categoryArrayController.addObject("")
categoryArrayController.removeObject("")
}






nstableview nsarraycontroller






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jan 18 at 21:41









PamPam

82




82













  • How and when do you set the contents of the array controller?

    – Willeke
    Jan 18 at 21:57











  • In the attributes inspector of the Array Controller, categories is set as the entity name (it's also a property of the view controller). The array controller is also bound to the view controller with the model key path set to categories. The categories array has about 25 entries but they are only shown in the table view after an object is added or removed. The array controller seems to need a nudge to reload the objects into the table but this is an awkward solution. I hope there is a better way.

    – Pam
    Jan 19 at 0:41











  • Should the array controller fetch the categories (array of NSMangedObject) or use the categories property of the view controller? Is categories marked with @objc dynamic?

    – Willeke
    Jan 19 at 2:42



















  • How and when do you set the contents of the array controller?

    – Willeke
    Jan 18 at 21:57











  • In the attributes inspector of the Array Controller, categories is set as the entity name (it's also a property of the view controller). The array controller is also bound to the view controller with the model key path set to categories. The categories array has about 25 entries but they are only shown in the table view after an object is added or removed. The array controller seems to need a nudge to reload the objects into the table but this is an awkward solution. I hope there is a better way.

    – Pam
    Jan 19 at 0:41











  • Should the array controller fetch the categories (array of NSMangedObject) or use the categories property of the view controller? Is categories marked with @objc dynamic?

    – Willeke
    Jan 19 at 2:42

















How and when do you set the contents of the array controller?

– Willeke
Jan 18 at 21:57





How and when do you set the contents of the array controller?

– Willeke
Jan 18 at 21:57













In the attributes inspector of the Array Controller, categories is set as the entity name (it's also a property of the view controller). The array controller is also bound to the view controller with the model key path set to categories. The categories array has about 25 entries but they are only shown in the table view after an object is added or removed. The array controller seems to need a nudge to reload the objects into the table but this is an awkward solution. I hope there is a better way.

– Pam
Jan 19 at 0:41





In the attributes inspector of the Array Controller, categories is set as the entity name (it's also a property of the view controller). The array controller is also bound to the view controller with the model key path set to categories. The categories array has about 25 entries but they are only shown in the table view after an object is added or removed. The array controller seems to need a nudge to reload the objects into the table but this is an awkward solution. I hope there is a better way.

– Pam
Jan 19 at 0:41













Should the array controller fetch the categories (array of NSMangedObject) or use the categories property of the view controller? Is categories marked with @objc dynamic?

– Willeke
Jan 19 at 2:42





Should the array controller fetch the categories (array of NSMangedObject) or use the categories property of the view controller? Is categories marked with @objc dynamic?

– Willeke
Jan 19 at 2:42












0






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',
autoActivateHeartbeat: false,
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
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54261790%2fnstableview-bound-to-nsarraycontroller-but-not-showing-data-until-another-object%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54261790%2fnstableview-bound-to-nsarraycontroller-but-not-showing-data-until-another-object%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Liquibase includeAll doesn't find base path

How to use setInterval in EJS file?

Petrus Granier-Deferre