GTK+ has been nominally multi-platform for some time. I spent a good amount of time fixing it and GLib to work with Cygwin/MinGW on Windows around 2004-5. (MacOS support was then just UNIX+X11, so not much different to Linux.) However, it was continually broken compared with Linux/X11, and suffered from repeated random breakage--it was quite clear it wasn't a primary target, and was obviously not subject to any integration testing. It appears that the Mac Cocoa port suffers from exactly the same problems.
In retrospect, I don't think GTK+ has ever been really suitable for cross-platform application development, despite the claims, and despite my extended efforts to do so. Non-X11 non-UNIX ports have always been broken and poorly supported, and this has never really changed. This also applies in a similar way to the language bindings, which are often slow to adopt API changes/additions and can also be buggy in their own right. GTKmm is wonderful, but it's still based upon a poor foundation; if that had been made the base API, replacing C/GObject entirely, it might have had a chance.
I switched to Qt a few months back, and while I still think GTK+ has the a nicer container model, I haven't suffered from a single portability issue to date, and the quality of implementation is so much better. Again looking back, the amount of pain and suffering you have to endure using GTK+ is absolutely ridiculous; GObject makes for unsafe, slow and hard to maintain code--justifying its use compared with safe C++ would be very difficult--imagine pitching this to your team in a commercial setting--and it's the primary reason GTK+ (and GNOME) ended up in this state. For example, creating new Qt widgets and subclassing existing ones is simple. Doing the same with GTK+ is a difficult and error-prone undertaking. And maintaining/refactoring after that even moreso. When you can just code in safe C++, choosing the clearly inferior solution makes no sense on any level--it's slower, unsafe, unpleasant to use, and barely maintainable.
GTK+3.x has broken several existing APIs, and made it even less portable than it already was. My existing code will remain using the stable GTK+2 APIs, and I have no intention of porting them to GTK+3--there would be zero benefit to do so. Eventually as I have to, I'll port to Qt. I'm by no means alone in this assessment. It's a quite unfortunate state of affairs, but it is what it is.