id | title |
---|---|
8A8AC5AA-1841-2BB1-C2AB-23D01ED9F86B |
Xamarin.Mac 1.4 |
- Added bindings for
NSComboBoxCell
andNSComboBoxCellDataSource
. - Fixed a regression where
NSApplication.EndSheet
would crash when attempting to invoke theNSAction
passed to a correspondingNSApplication.BeginSheeet
call. - Fixed 12597 , preventing a crash when a managed method returns a null string to the native runtime, such as in
NSComboBoxDataSource.CompletedString
. - Fixed 12529 , preventing a crash when setting an
NSMenuItem.Activated
delegate. - Fixed 12712 , avoiding a crash in
CGPath.EllipseFromRect
. - Added
CMSampleBuffer.GetSampleTimingInfo
andCMSampleBuffer.CreateWithNewTiming
to allow adjusting the time ofCMSampleBuffer
s. - Added linker support to preserve types using XML serialization and data contracts attributes.
- Added a new sample demonstrating
NSComboBoxDataSource
with auto-completion.
The focus of this release was on providing strongly-typed notifications for the AppKit framework, the introduction of three low-level C API bindings, and general bug fixing.
You can check our Roadmap to learn where Xamarin.Mac is headed.
Full coverage and support for strongly-typed notifications has been introduced for the AppKit framework. These provide a code-completion-friendly API design for accessing dictionary entries on notifications through strong typing.
"High-Level" app+user focused APIs for CFPreferences
have been introduced. CFPreferences
is in the CoreFoundation
framework and is wrapped by the higher-level NSUserDefaults
in the
Foundation framework.
Typically NSUserDefaults
is preferred, but CFPreferences
can be useful for lower-level operations. CFPreferences
is thread safe.
The SystemConfiguration framework's NetworkReachability
and CaptiveNetwork
APIs are now supported.
NetworkReachability
allows an application to determine the status of a system's current network configuration and the reachability of a target host.
CaptiveNetwork
allows an application to interact with Captive
Network Support, the system component responsible for detecting networks that
require user interaction before providing internet access, such as those
typically found at WiFi hotspots in public locations such as airports and hotels.
The WebKit framework coverage was expanded to include DomHtmlFormElement
and DomHtmlTextAreaElement
to allow
fully interacting with HTML forms from C#. Additionally, DomHtmlInputElement
now includes a Files
property
exposing a DomFileList
for supporting input[type=file]
elements.
General support for marshalling native Objective-C exceptions
( NSException
) has been introduced to on APIs annotated with [MarshalNativeExceptions]
. Currently only a few APIs known for
throwing recoverable native exceptions support this feature:- MonoMac.CoreBluetooth.CBUUID.FromString
.
- All
MonoMac.AppKit.NSColor.<strong>*</strong>Component
properties. MonoMac.Foundation.NSKeyedUnarchiver
: its constructor andUnarchiveObject
andUnarchiveFile
methods.
If other APIs become known to be both problematic and recoverable, they can be annotated in the future. Please let us know.
For more details, see the Binding Types Reference Guide. Native NSException
objects will be wrapped in a managed ObjCException
which can be caught.
MonoMac.Foundation.NSOrderedSet
andMonoMac.Foundation.NSMutableOrderedSet
were added.- Stock template images are now supported through the new
NSImageName
enum to be used inNSImage.ImageNamed(NSImageName)
. - Fixed bundling native libraries where some used absolute paths for their dependencies. This previously broke when the Mono runtime was absent on the target system. #11351 .
- Fixed issues when referencing mixed-mode (e.g. C++) .NET assemblies. #11448 .
- Added support for bundling internationalized assemblies even if the linker is disabled.
- Explore " Hello, Mac ," our tutorial on building your first Xamarin.Mac application.
- Launch the Documentation Browser from Xamarin Studio (Help->Help) and browse the API under the MonoMac namespace.
- Check our extensive set of samples .
Connect with other Xamarin.Mac users on our forums.
Join us at our Live Chat for live support and discussions.