I worked it out. Here's the answer for anyone looking:
Step 1. Create two NSObjects in your viewcontroller class:
NSObject NSWindowDidEnterFullScreenNotification;
NSObject NSWindowDidExitFullScreenNotification;
Step 2. In your ViewDidLoad() method add this:
NSWindowDidEnterFullScreenNotification = NSNotificationCenter.DefaultCenter.AddObserver(new NSString("NSWindowDidEnterFullScreenNotification"), FullScreenObserver, null);
NSWindowDidExitFullScreenNotification = NSNotificationCenter.DefaultCenter.AddObserver(new NSString("NSWindowDidExitFullScreenNotification"), ExitFullScreenObserver, null);
Step 3. Then in your ViewController class add these two methods:
public void ExitFullScreenObserver(NSNotification notify)
{
//... your code here
Console.WriteLine("full screen mode exited");
}
public void FullScreenObserver(NSNotification notify)
{
//... your code here
Console.WriteLine("full screen mode entered");
}
NB: this doesn't dispose of the NSObjects - for more info see User SushiHangover's Answer on StackOverflow: how-to-detect-resize-in-nsview-in-xamarin-mac