[UIKit] Add Catalyst support (#12809)
This commit is contained in:
Родитель
a300dfc56b
Коммит
9230c798a9
|
@ -45,8 +45,12 @@ using OpenGL;
|
|||
using CoreVideo;
|
||||
using CloudKit;
|
||||
using UniformTypeIdentifiers;
|
||||
|
||||
#if __MACCATALYST__
|
||||
using UIKit;
|
||||
#else
|
||||
using UIMenu = Foundation.NSObject;
|
||||
using UIMenuElement = Foundation.NSObject;
|
||||
#endif
|
||||
|
||||
using CGGlyph = System.UInt16;
|
||||
|
@ -19483,6 +19487,16 @@ namespace AppKit {
|
|||
[Mac (11, 0)]
|
||||
[Field ("NSToolbarSidebarTrackingSeparatorItemIdentifier")]
|
||||
NSString NSToolbarSidebarTrackingSeparatorItemIdentifier { get; }
|
||||
|
||||
// https://github.com/xamarin/xamarin-macios/issues/12871
|
||||
// [MacCatalyst (14,0)][NoMac]
|
||||
// [Field ("NSToolbarPrimarySidebarTrackingSeparatorItemIdentifier")]
|
||||
// NSString PrimarySidebarTrackingSeparatorItemIdentifier { get; }
|
||||
|
||||
// https://github.com/xamarin/xamarin-macios/issues/12871
|
||||
// [MacCatalyst (14,0)][NoMac]
|
||||
// [Field ("NSToolbarSupplementarySidebarTrackingSeparatorItemIdentifier")]
|
||||
// NSString SupplementarySidebarTrackingSeparatorItemIdentifier { get; }
|
||||
}
|
||||
|
||||
[MacCatalyst (13, 0)]
|
||||
|
@ -19611,6 +19625,12 @@ namespace AppKit {
|
|||
[Mac (11, 0), iOS (14, 0)]
|
||||
[Export ("navigational")]
|
||||
bool Navigational { [Bind ("isNavigational")] get; set; }
|
||||
|
||||
[NoMac]
|
||||
[MacCatalyst (13, 0)]
|
||||
[Export ("itemMenuFormRepresentation", ArgumentSemantic.Copy)]
|
||||
[NullAllowed]
|
||||
UIMenuElement ItemMenuFormRepresentation { get; set; }
|
||||
}
|
||||
|
||||
[MacCatalyst (13,0)]
|
||||
|
@ -27020,7 +27040,7 @@ namespace AppKit {
|
|||
}
|
||||
|
||||
[Mac (10,15)]
|
||||
[MacCatalyst (13,0)]
|
||||
[MacCatalyst (13, 0)]
|
||||
[BaseType (typeof (NSToolbarItem))]
|
||||
interface NSMenuToolbarItem
|
||||
{
|
||||
|
@ -27030,6 +27050,11 @@ namespace AppKit {
|
|||
|
||||
[Export ("showsIndicator")]
|
||||
bool ShowsIndicator { get; set; }
|
||||
|
||||
[MacCatalyst (13, 0)]
|
||||
[NoMac]
|
||||
[Export ("itemMenu", ArgumentSemantic.Copy)]
|
||||
UIMenu ItemMenu { get; set; }
|
||||
}
|
||||
|
||||
[NoMacCatalyst]
|
||||
|
|
83
src/uikit.cs
83
src/uikit.cs
|
@ -87,6 +87,14 @@ using UIFocusSystem = Foundation.NSObject;
|
|||
using UIPointerAccessoryPosition = Foundation.NSObject;
|
||||
#endif // !IOS
|
||||
|
||||
#if __MACCATALYST__
|
||||
using AppKit;
|
||||
#else
|
||||
using NSTouchBarProvider = Foundation.NSObject;
|
||||
using NSTouchBar = Foundation.NSObject;
|
||||
using NSToolbar = Foundation.NSObject;
|
||||
#endif
|
||||
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
|
||||
|
@ -10404,6 +10412,9 @@ namespace UIKit {
|
|||
#endif // !TVOS
|
||||
#if IOS
|
||||
, UIPasteConfigurationSupporting
|
||||
#if __MACCATALYST__
|
||||
, NSTouchBarProvider
|
||||
#endif // __MACCATALYST__
|
||||
#endif // IOS
|
||||
{
|
||||
|
||||
|
@ -10614,6 +10625,18 @@ namespace UIKit {
|
|||
[TV (15,0), iOS (15,0), MacCatalyst (15,0)]
|
||||
[Export ("captureTextFromCamera:")]
|
||||
void CaptureTextFromCamera ([NullAllowed] NSObject sender);
|
||||
|
||||
[MacCatalyst (13, 0)]
|
||||
[NoWatch, NoTV, NoiOS]
|
||||
[Export ("makeTouchBar")]
|
||||
[return: NullAllowed]
|
||||
NSTouchBar CreateTouchBar ();
|
||||
|
||||
[MacCatalyst (13, 0)]
|
||||
[NoWatch, NoTV, NoiOS]
|
||||
[Export ("touchBar", ArgumentSemantic.Strong)]
|
||||
[NullAllowed]
|
||||
NSTouchBar TouchBar { get; set; }
|
||||
}
|
||||
|
||||
[Category, BaseType (typeof (UIResponder))]
|
||||
|
@ -15355,6 +15378,17 @@ namespace UIKit {
|
|||
[NoWatch, NoTV, iOS (14,0)]
|
||||
[Export ("setNeedsUpdateOfPrefersPointerLocked")]
|
||||
void SetNeedsUpdateOfPrefersPointerLocked ();
|
||||
|
||||
[NoiOS][NoTV][NoWatch]
|
||||
[MacCatalyst (13,0)]
|
||||
[Export ("setNeedsTouchBarUpdate")]
|
||||
void SetNeedsTouchBarUpdate ();
|
||||
|
||||
[NoiOS][NoTV][NoWatch]
|
||||
[MacCatalyst (13, 0)]
|
||||
[NullAllowed]
|
||||
[Export ("childViewControllerForTouchBar")]
|
||||
UIViewController ChildViewControllerForTouchBar { get; }
|
||||
}
|
||||
|
||||
[iOS (7,0)]
|
||||
|
@ -20994,6 +21028,12 @@ namespace UIKit {
|
|||
[NoWatch, TV (15,0), iOS (15,0), MacCatalyst (15,0)]
|
||||
[NullAllowed, Export ("focusSystem")]
|
||||
UIFocusSystem FocusSystem { get; }
|
||||
|
||||
[NoWatch][NoTV][NoiOS]
|
||||
[MacCatalyst (13, 0)]
|
||||
[Export ("titlebar")]
|
||||
[NullAllowed]
|
||||
UITitlebar Titlebar { get; }
|
||||
}
|
||||
|
||||
interface IUIWindowSceneDelegate { }
|
||||
|
@ -23146,4 +23186,47 @@ namespace UIKit {
|
|||
UIPointerAccessory CreateArrow (UIPointerAccessoryPosition position);
|
||||
}
|
||||
|
||||
[NoiOS][NoTV][NoWatch][MacCatalyst (13,0)]
|
||||
[Native]
|
||||
public enum UITitlebarTitleVisibility : long
|
||||
{
|
||||
Visible,
|
||||
Hidden,
|
||||
}
|
||||
|
||||
[MacCatalyst (14,0)][NoiOS][NoTV][NoWatch]
|
||||
[Native]
|
||||
public enum UITitlebarToolbarStyle : long
|
||||
{
|
||||
Automatic,
|
||||
Expanded,
|
||||
Preference,
|
||||
Unified,
|
||||
UnifiedCompact,
|
||||
}
|
||||
|
||||
[NoiOS][NoTV][NoWatch][MacCatalyst (13,0)]
|
||||
[BaseType (typeof (NSObject))]
|
||||
interface UITitlebar
|
||||
{
|
||||
[Export ("titleVisibility", ArgumentSemantic.Assign)]
|
||||
UITitlebarTitleVisibility TitleVisibility { get; set; }
|
||||
|
||||
[MacCatalyst (14, 0)]
|
||||
[Export ("toolbarStyle", ArgumentSemantic.Assign)]
|
||||
UITitlebarToolbarStyle ToolbarStyle { get; set; }
|
||||
|
||||
[MacCatalyst (14, 0)]
|
||||
[Export ("separatorStyle", ArgumentSemantic.Assign)]
|
||||
UITitlebarSeparatorStyle SeparatorStyle { get; set; }
|
||||
|
||||
[NullAllowed, Export ("toolbar", ArgumentSemantic.Strong)]
|
||||
NSToolbar Toolbar { get; set; }
|
||||
|
||||
[Export ("autoHidesToolbarInFullScreen")]
|
||||
bool AutoHidesToolbarInFullScreen { get; set; }
|
||||
|
||||
[NullAllowed, Export ("representedURL", ArgumentSemantic.Copy)]
|
||||
NSUrl RepresentedUrl { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
## keep requirement since it will create code that is safer for cross-platform usage
|
||||
|
||||
# these enums are in the headers, but not documented to be supported on Mac Catalyst, so ignore them until proven that we need them
|
|
@ -1,3 +1,8 @@
|
|||
# https://github.com/xamarin/xamarin-macios/issues/12871
|
||||
# Catalyst field constants that are loaded from private UIKitCore are not being handled by Field attribute
|
||||
!missing-field! NSToolbarPrimarySidebarTrackingSeparatorItemIdentifier not bound
|
||||
!missing-field! NSToolbarSupplementarySidebarTrackingSeparatorItemIdentifier not bound
|
||||
|
||||
# Apple docs: Deprecated in iOS 3.2
|
||||
!unknown-field! UIKeyboardBoundsUserInfoKey bound
|
||||
!unknown-field! UIKeyboardCenterBeginUserInfoKey bound
|
||||
|
|
|
@ -49,10 +49,6 @@
|
|||
!incorrect-protocol-member! UITextDocumentProxy::setMarkedText:selectedRange: is REQUIRED and should be abstract
|
||||
!incorrect-protocol-member! UITextDocumentProxy::unmarkText is REQUIRED and should be abstract
|
||||
!missing-enum! UIDirectionalRectEdge not bound
|
||||
!missing-enum! UITitlebarTitleVisibility not bound
|
||||
!missing-enum! UITitlebarToolbarStyle not bound
|
||||
!missing-field! NSToolbarPrimarySidebarTrackingSeparatorItemIdentifier not bound
|
||||
!missing-field! NSToolbarSupplementarySidebarTrackingSeparatorItemIdentifier not bound
|
||||
!missing-field! UIApplicationInvalidInterfaceOrientationException not bound
|
||||
!missing-field! UIKeyInputF1 not bound
|
||||
!missing-null-allowed! 'CoreAnimation.CADisplayLink UIKit.UIScreen::CreateDisplayLink(Foundation.NSObject,ObjCRuntime.Selector)' is missing an [NullAllowed] on return type
|
||||
|
@ -425,7 +421,6 @@
|
|||
!missing-pinvoke! UIFontWeightForImageSymbolWeight is not bound
|
||||
!missing-pinvoke! UIImageSymbolWeightForFontWeight is not bound
|
||||
!missing-protocol-conformance! UIDocumentInteractionController should conform to UIActionSheetDelegate
|
||||
!missing-protocol-conformance! UIResponder should conform to NSTouchBarProvider (defined in 'NSTouchBarProvider' category)
|
||||
!missing-protocol-conformance! UIResponder should conform to UIActivityItemsConfigurationProviding (defined in 'UIActivityItemsConfiguration' category)
|
||||
!missing-protocol-conformance! UIViewController should conform to UIStateRestoring (defined in 'UIStateRestoration' category)
|
||||
!missing-protocol-member! NSCollectionLayoutVisibleItem::bounds not found
|
||||
|
@ -438,8 +433,6 @@
|
|||
!missing-selector! +NSToolbarItem::itemWithItemIdentifier:barButtonItem: not bound
|
||||
!missing-selector! NSDiffableDataSourceSectionTransaction::difference not bound
|
||||
!missing-selector! NSDiffableDataSourceTransaction::difference not bound
|
||||
!missing-selector! NSMenuToolbarItem::itemMenu not bound
|
||||
!missing-selector! NSMenuToolbarItem::setItemMenu: not bound
|
||||
!missing-selector! NSObject::accessibilityDragSourceDescriptors not bound
|
||||
!missing-selector! NSObject::accessibilityDropPointDescriptors not bound
|
||||
!missing-selector! NSObject::setAccessibilityDragSourceDescriptors: not bound
|
||||
|
@ -448,8 +441,6 @@
|
|||
!missing-selector! NSSharingServicePickerToolbarItem::setActivityItemsConfiguration: not bound
|
||||
!missing-selector! NSSharingServicePickerTouchBarItem::activityItemsConfiguration not bound
|
||||
!missing-selector! NSSharingServicePickerTouchBarItem::setActivityItemsConfiguration: not bound
|
||||
!missing-selector! NSToolbarItem::itemMenuFormRepresentation not bound
|
||||
!missing-selector! NSToolbarItem::setItemMenuFormRepresentation: not bound
|
||||
!missing-selector! UIAlertView::initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles: not bound
|
||||
!missing-selector! UIBarAppearance::copy not bound
|
||||
!missing-selector! UIBarButtonItemAppearance::copy not bound
|
||||
|
@ -474,26 +465,7 @@
|
|||
!missing-selector! UIPrintPaper::printRect not bound
|
||||
!missing-selector! UIRefreshControl::setTintColor: not bound
|
||||
!missing-selector! UIRefreshControl::tintColor not bound
|
||||
!missing-selector! UIResponder::makeTouchBar not bound
|
||||
!missing-selector! UIResponder::setTouchBar: not bound
|
||||
!missing-selector! UIResponder::touchBar not bound
|
||||
!missing-selector! UITabBarItemAppearance::copy not bound
|
||||
!missing-selector! UITitlebar::autoHidesToolbarInFullScreen not bound
|
||||
!missing-selector! UITitlebar::representedURL not bound
|
||||
!missing-selector! UITitlebar::separatorStyle not bound
|
||||
!missing-selector! UITitlebar::setAutoHidesToolbarInFullScreen: not bound
|
||||
!missing-selector! UITitlebar::setRepresentedURL: not bound
|
||||
!missing-selector! UITitlebar::setSeparatorStyle: not bound
|
||||
!missing-selector! UITitlebar::setTitleVisibility: not bound
|
||||
!missing-selector! UITitlebar::setToolbar: not bound
|
||||
!missing-selector! UITitlebar::setToolbarStyle: not bound
|
||||
!missing-selector! UITitlebar::titleVisibility not bound
|
||||
!missing-selector! UITitlebar::toolbar not bound
|
||||
!missing-selector! UITitlebar::toolbarStyle not bound
|
||||
!missing-selector! UIToolbar::setTintColor: not bound
|
||||
!missing-selector! UIToolbar::tintColor not bound
|
||||
!missing-selector! UIViewController::childViewControllerForTouchBar not bound
|
||||
!missing-selector! UIViewController::setNeedsTouchBarUpdate not bound
|
||||
!missing-selector! UIWindowScene::titlebar not bound
|
||||
!missing-type! UITitlebar not bound
|
||||
## appended from unclassified file
|
||||
|
|
Загрузка…
Ссылка в новой задаче