Chris Mellon wrote: > > I didn't say inherently unable, I said the toolkit doesn't provide it. > Note that you said that you did a lot of work to follow OS X > conventions and implement behavior. The toolkit doesn't help you with > any of this. A mac-native toolkit (or one that strives for native > behavior, like wxPython) eliminates a lot of this work (although, of > course, not all).
If the toolkit doesn't provide it, then I think that means "inherently unable." On the Mac, Tk provides a mechanism that allows hooking up arbitrary events to arbitrary keyboard. Something like: self.bind('<Command-Key-N>', lambda event: self.authorizeCommand(self.installPackage)) I have to specify the key-combination--that's all. One line of code. No implementing of keyboard bindings in C or at the Tcl/Tk or even Python-Tkinter level--it's all already defined by the toolkit. By contrast, Cocoa/Objective-C has a rather complex system for defining keyboard events: http://developer.apple.com/documentation/Cocoa/Conceptual/EventOverview/HandlingKeyEvents/chapter_6_section_1.html#//apple_ref/doc/uid/10000060i-CH7-SW1 PyObjC is a thin wrapper over Objective-C, so you'd have to do the equivalent calls in Python to implement custom keyboard behavior. It is true that Cocoa some convenience methods in Interface Builder, i.e. common menu commands don't require any extra code: if you are developing a document-based application, "Command-C" is implemented in the menu and in the frameworks as "copy (text, image, whatever) to clipboard." But "Command-C" also works identically in the Tk console. Tk does lack some things. It doesn't support drag-and-drop on the Mac. It doesn't hook into some of the newer Mac visual styles. Getting access to this would require an extension or patching Tk's core. In those events, I emulate the behavior or appeareance, which Tk makes very easy. -- Kevin Walzer Code by Kevin http://www.codebykevin.com -- http://mail.python.org/mailman/listinfo/python-list