Esempio n. 1
0
        public static NSFont LightSystemFontOfSize(nfloat fontSize)
        {
            IntPtr selectorHandle;

            if (RespondsToSelector(classPtrNSFont, sel__lightSystemFontOfSize_))
            {
                // _lightSystemFontOfSize: is AppKit internal as of 10.14 but is used by Spotlight and Xcode
                selectorHandle = sel__lightSystemFontOfSize_;
            }
            else if (RespondsToSelector(classPtrNSFont, sel_lightSystemFontOfSize_))
            {
                // lightSystemFontOfSize: does not exist, but may in a future macOS... try it next
                selectorHandle = sel_lightSystemFontOfSize_;
            }
            else
            {
                // systemFontOfSize: has always existed, fall back to it
                selectorHandle = sel_systemFontOfSize_;
            }

            return(WrappedNSFont.Wrap(IntPtr_objc_msgSend_nfloat(
                                          classPtrNSFont,
                                          selectorHandle,
                                          fontSize)));
        }
Esempio n. 2
0
        /// <summary>
        /// Workaround for https://github.com/xamarin/xamarin-macios/pull/5423
        /// </summary>
        public static NSFont FromFontName(string fontName, nfloat fontSize)
        {
            var fontNamePtr = NSString.CreateNative(fontName);

            try
            {
                return(WrappedNSFont.Wrap(IntPtr_objc_msgSend_IntPtr_nfloat(
                                              classPtrNSFont,
                                              selFontWithName_Size,
                                              fontNamePtr,
                                              fontSize)));
            }
            finally
            {
                NSString.ReleaseNative(fontNamePtr);
            }
        }
Esempio n. 3
0
 public static NSFont SystemFontOfSize(nfloat fontSize)
 => WrappedNSFont.Wrap(IntPtr_objc_msgSend_nfloat(
                           classPtrNSFont,
                           sel_systemFontOfSize_,
                           fontSize));
Esempio n. 4
0
 public static NSFont UserFontOfSize(nfloat fontSize)
 => WrappedNSFont.Wrap(IntPtr_objc_msgSend_nfloat(
                           classPtrNSFont,
                           selUserFontOfSize,
                           fontSize));