I have a Mac Core Data application (not document-based) for journal writing using Xcode 7.1 on OS X 10.11. The main window is a split view. On the left side is a table view containing a list of dates. Selecting a date shows that date's journal contents in a text view on the right side of the split view. I use an array controller and Cocoa bindings to connect everything. The array controller is set to automatically prepare its content.
Everything works great when I launch the application. The table view shows the dates. Selecting a date shows its journal contents. But there are various things that will cause the text in the table view to disappear. Dragging the split view's divider causes the text in all the table view entries to disappear. Clicking in the text view causes the selected table view item's text to disappear. Selecting a table view item causes the previously selected item's text to disappear.
I can get the text in the table view to appear again by calling the table view's reloadData() method. But I'd prefer not to litter my code with calls to reloadData() in multiple places. I have a small example of a similar document-based Core Data application that uses bindings, and the text in the table view doesn't disappear, and I don't have to call reloadData(). I found no difference in how I set up the bindings in both projects.
What can I do to keep the table view text from disappearing? If there's no way to keep the text from disappearing, where do I call the table view's reloadData() method so the text appears to always be visible from the user's perspective?