I am trying to solve a larger problem and I am tipping on the fact that ARC apparently is releasing the view to my NSViewController too early. I think :) So I created a simple a
You need to add an ivar or property to hold the TextViewController. Currently, the only reference to it is going away at the end of applicationDidFinishLaunching:
which causes it to be deallocated.
That's bad, because your button needs the controller to be around to handle the button press. The view doesn't hold on to it's controller, as that would cause a retain cycle. So you are responsible for keeping the controller around if you don't want your button talking to a deallocated object.
Add a property to hold the view controller. Your controller currently has nothing to keep it alive past the end of the method that allocates it.
Add:
@property (strong) TestViewController *tvc;
Modify:
self.tvc = [[TestViewController alloc] initWithNibName:@"TestViewController" bundle:nil];
(I'm curious...what do you see as the point of creating a view controller if all you want is the view it contains?)
Concerning the general approach, it seems that this is more properly behavior that should be implemented using a container view controller. That mechanism allows multiple view controllers to share the screen in an organized way.