Puoi utilizzare le librerie GNUStep per fare il porting con poche e minime modifiche e continuare ad utilizzare l'Obj-C anche su Windows e Linux...
Altrimenti buoni soluzioni possono essere (in ordine di preferenza):
C# + .NET/Mono - C++ + WxWidgets
C++ + Qt
C++ + .NET

C# è un linguaggio meglio pensato e strutturato di C++ (anche per ragioni storiche) e ciò è indiscutibile, il C++ resta comunque un linguaggio molto usato e attualmente quello con una base di librerie più ampia. C# è reso portabile dal progetto Mono, mancano poche funzioni sopprattutto librerie presenti nel .NET 4.0, piena compatibilità con 2.0 e altissima con 3.0.
Qt e WxWidgets sono entrambe librerie grafiche, la prima disegna da se i componenti mentre la seconda utilizza i componenti del sistema operativo, entrambe sono portabili, utilizzano solo metodi diversi. La seconda risulta più leggera e più integrata con la grafica dell'OS appunto grazie a questo.