Here's a shorter method of loading all UI... classes into the global namespace, if you really want to do that (I find it a bit wasteful):

from objc_util import ObjCClass globals().update({n: ObjCClass(n) for n in ObjCClass.get_names('UI')})

@JonB The startswith('_') check seems unnecessary, given that the class names are already filtered by prefix. Also, a ValueError shouldn't really happen because get_names only returns names of classes that actually exist.