API Notes: AppKit framework

Introduction

An introduction to PyObjC describes the general method for translating Objective-C calls into Python calls, including the handling of pass-by-reference arguments and buffers.

This document describes where the PyObjC bindings for this framework are different from the general rule, such as mentioning APIs that are not supported or where the interface is different than expected.

API Notes

API Extensions

See API Description for PyObjCTools.AppCategories for same extensions for the APIs from the AppKit framework.

NSBezierPath

  • -drawPackedGlyphs:atPoint: and -appendBezierPathWithPackedGlyphs:

    These methods are barely supported...

NSColorSpace

  • -initWithColorSyncProfile: and colorSyncProfile

    These methods are not supported.

NSEvent

  • -initWithEventRef: and -eventRef

    These methods are not supported

NSGradient

  • -initWithColorsAndLocations:

    This method is not supported, use -initWithColors:atLocations:colorSpace: instead.

NSDrawBitmap

This function is deprecated and is not supported by PyObjC. Use an NSBitmapImageRep instead.

NSImage

  • initWithIconRef:

    This method is not yet supported.

NSMovie

NOTE: This class is deprecated by Apple, use QTMovie instead.

  • -QTMovie, -initWithMovie:

    These methods are not supported.

NSMovieView

  • -movieController

    This method is not supported.

NSPrintInfo

  • -PMPrintSession, -PMPageFormat, -PMPrintSettings

    These methods are not supported.

NSQuickDrawView

  • -qdPort

    This method is not supported.

NSGlyphInfoAtIndex

This function is not supported.

NSTypesetterGlyphInfo

This structure is not supported, and therefore the method -baseOfTypesetterGlyphInfo and -typesetterLaidOneGlyph of NSSimpleHorizontalTypesetter are not supported as well.

NSWindow

Methods -initWithWindowRef: and -windowRef are not supported.

NSInputStream

  • getBuffer:length:

    This method is not supported

NSBitmapImageRep

  • -initWithBitmapDataPlanes:pixelsWide:pixelsHigh:bitsPerSample:samplesPerPixel:hasAlpha:isPlanar:colorSpaceName:bitmapFormat:bytesPerRow:bitsPerPixel:

    This method is not yet supported. Support for this method requires a manual wrapper, which has not been written yet.

NSDictionaryOfVariableBindings

This is a helper macro that cannot be implemented with the same interface in Python.

Instead of:

NSDictionaryOfVariableBindings(button1, button2, nil)

use:

{ "button1": button1, "button2": button2 }

or:

AppKit.NSDictionaryOfVariableBindings("button1", "button2")

The first alternative is preferable because it is cleaner Python code, and the implementation of NSDictionaryOfVariableBindings has to use an unstable API of CPython.

IBInspectable and IB_DESIGNABLE

These definitions are not supported.