PyObjC 是Python 的 Objective-C 的桥接(bridge),可以使用纯Python语言写Cocoa程序。
ConverterController.py
import objc
from Foundation import *
from AppKit import *
from PyObjCTools import NibClassBuilder, AppHelper
NibClassBuilder.extractClasses("MainMenu")
# class defined in MainMenu.nib
class Converter(NibClassBuilder.AutoBaseClass):
# the actual base class is NSObject
def convertCurrency(self, currency, rate):
return currency * rate
# class defined in MainMenu.nib
class ConverterController(NibClassBuilder.AutoBaseClass):
# the actual base class is NSObject
# The following outlets are added to the class:
# amountField
# converter
# dollarField
# rateField
def awakeFromNib(self):
self.rateField.window().makeKeyAndOrderFront_(self)
self.rateField.selectText_(self)
def convert_(self, sender):
currency = self.dollarField.floatValue()
rate =self.rateField.floatValue()
amount = self.converter.convertCurrency(currency,rate)
self.amountField.setFloatValue_(amount)
self.rateField.selectText_(self)
if __name__ == "__main__":
AppHelper.runEventLoop()