pub struct NSLayoutManager { /* private fields */ }NSLayoutManager only.Expand description
Implementations§
Source§impl NSLayoutManager
impl NSLayoutManager
Sourcepub fn init(this: Allocated<Self>) -> Retained<Self>
pub fn init(this: Allocated<Self>) -> Retained<Self>
************************** Initialization ***************************
Sourcepub unsafe fn initWithCoder(
this: Allocated<Self>,
coder: &NSCoder,
) -> Option<Retained<Self>>
pub unsafe fn initWithCoder( this: Allocated<Self>, coder: &NSCoder, ) -> Option<Retained<Self>>
§Safety
coder possibly has further requirements.
Sourcepub unsafe fn textStorage(&self) -> Option<Retained<NSTextStorage>>
Available on crate feature NSTextStorage only.
pub unsafe fn textStorage(&self) -> Option<Retained<NSTextStorage>>
NSTextStorage only.************************* Text storage **************************
§Safety
This is not retained internally, you must ensure the object is still alive.
Sourcepub unsafe fn setTextStorage(&self, text_storage: Option<&NSTextStorage>)
Available on crate feature NSTextStorage only.
pub unsafe fn setTextStorage(&self, text_storage: Option<&NSTextStorage>)
NSTextStorage only.Setter for textStorage.
§Safety
This is unretained, you must ensure the object is kept alive while in use.
Sourcepub fn textContainers(&self) -> Retained<NSArray<NSTextContainer>>
Available on crate feature NSTextContainer only.
pub fn textContainers(&self) -> Retained<NSArray<NSTextContainer>>
NSTextContainer only.************************** Text containers ***************************
pub fn addTextContainer(&self, container: &NSTextContainer)
NSTextContainer only.pub fn insertTextContainer_atIndex( &self, container: &NSTextContainer, index: NSUInteger, )
NSTextContainer only.pub fn removeTextContainerAtIndex(&self, index: NSUInteger)
pub fn textContainerChangedGeometry(&self, container: &NSTextContainer)
NSTextContainer only.Sourcepub fn delegate(
&self,
) -> Option<Retained<ProtocolObject<dyn NSLayoutManagerDelegate>>>
pub fn delegate( &self, ) -> Option<Retained<ProtocolObject<dyn NSLayoutManagerDelegate>>>
************************** Delegate ***************************
Sourcepub fn setDelegate(
&self,
delegate: Option<&ProtocolObject<dyn NSLayoutManagerDelegate>>,
)
pub fn setDelegate( &self, delegate: Option<&ProtocolObject<dyn NSLayoutManagerDelegate>>, )
Setter for delegate.
This is a weak property.
Sourcepub fn showsInvisibleCharacters(&self) -> bool
pub fn showsInvisibleCharacters(&self) -> bool
********************* Global layout manager options **********************
Sourcepub fn setShowsInvisibleCharacters(&self, shows_invisible_characters: bool)
pub fn setShowsInvisibleCharacters(&self, shows_invisible_characters: bool)
Setter for showsInvisibleCharacters.
pub fn showsControlCharacters(&self) -> bool
Sourcepub fn setShowsControlCharacters(&self, shows_control_characters: bool)
pub fn setShowsControlCharacters(&self, shows_control_characters: bool)
Setter for showsControlCharacters.
pub fn usesFontLeading(&self) -> bool
Sourcepub fn setUsesFontLeading(&self, uses_font_leading: bool)
pub fn setUsesFontLeading(&self, uses_font_leading: bool)
Setter for usesFontLeading.
pub fn allowsNonContiguousLayout(&self) -> bool
Sourcepub fn setAllowsNonContiguousLayout(&self, allows_non_contiguous_layout: bool)
pub fn setAllowsNonContiguousLayout(&self, allows_non_contiguous_layout: bool)
Setter for allowsNonContiguousLayout.
pub fn hasNonContiguousLayout(&self) -> bool
pub fn limitsLayoutForSuspiciousContents(&self) -> bool
Sourcepub fn setLimitsLayoutForSuspiciousContents(
&self,
limits_layout_for_suspicious_contents: bool,
)
pub fn setLimitsLayoutForSuspiciousContents( &self, limits_layout_for_suspicious_contents: bool, )
Setter for limitsLayoutForSuspiciousContents.
pub fn usesDefaultHyphenation(&self) -> bool
Sourcepub fn setUsesDefaultHyphenation(&self, uses_default_hyphenation: bool)
pub fn setUsesDefaultHyphenation(&self, uses_default_hyphenation: bool)
Setter for usesDefaultHyphenation.
Sourcepub unsafe fn invalidateGlyphsForCharacterRange_changeInLength_actualCharacterRange(
&self,
char_range: NSRange,
delta: NSInteger,
actual_char_range: NSRangePointer,
)
pub unsafe fn invalidateGlyphsForCharacterRange_changeInLength_actualCharacterRange( &self, char_range: NSRange, delta: NSInteger, actual_char_range: NSRangePointer, )
************************ Invalidation *************************
§Safety
actual_char_range must be a valid pointer or null.
Sourcepub unsafe fn invalidateLayoutForCharacterRange_actualCharacterRange(
&self,
char_range: NSRange,
actual_char_range: NSRangePointer,
)
pub unsafe fn invalidateLayoutForCharacterRange_actualCharacterRange( &self, char_range: NSRange, actual_char_range: NSRangePointer, )
§Safety
actual_char_range must be a valid pointer or null.
pub fn invalidateDisplayForCharacterRange(&self, char_range: NSRange)
pub fn invalidateDisplayForGlyphRange(&self, glyph_range: NSRange)
pub fn processEditingForTextStorage_edited_range_changeInLength_invalidatedRange( &self, text_storage: &NSTextStorage, edit_mask: NSTextStorageEditActions, new_char_range: NSRange, delta: NSInteger, invalidated_char_range: NSRange, )
NSTextStorage only.Sourcepub fn ensureGlyphsForCharacterRange(&self, char_range: NSRange)
pub fn ensureGlyphsForCharacterRange(&self, char_range: NSRange)
********************** Causing glyph generation and layout ***********************
pub fn ensureGlyphsForGlyphRange(&self, glyph_range: NSRange)
pub fn ensureLayoutForCharacterRange(&self, char_range: NSRange)
pub fn ensureLayoutForGlyphRange(&self, glyph_range: NSRange)
pub fn ensureLayoutForTextContainer(&self, container: &NSTextContainer)
NSTextContainer only.pub fn ensureLayoutForBoundingRect_inTextContainer( &self, bounds: CGRect, container: &NSTextContainer, )
NSTextContainer and objc2-core-foundation only.Sourcepub unsafe fn setGlyphs_properties_characterIndexes_font_forGlyphRange(
&self,
glyphs: NonNull<CGGlyph>,
props: NonNull<NSGlyphProperty>,
char_indexes: NonNull<NSUInteger>,
a_font: &UIFont,
glyph_range: NSRange,
)
Available on crate features UIFont and objc2-core-graphics only.
pub unsafe fn setGlyphs_properties_characterIndexes_font_forGlyphRange( &self, glyphs: NonNull<CGGlyph>, props: NonNull<NSGlyphProperty>, char_indexes: NonNull<NSUInteger>, a_font: &UIFont, glyph_range: NSRange, )
UIFont and objc2-core-graphics only.********************** Set glyphs and glyph properties ***********************
§Safety
glyphsmust be a valid pointer.propsmust be a valid pointer.char_indexesmust be a valid pointer.
Sourcepub fn numberOfGlyphs(&self) -> NSUInteger
pub fn numberOfGlyphs(&self) -> NSUInteger
********************** Get glyphs and glyph properties ***********************
Sourcepub unsafe fn CGGlyphAtIndex_isValidIndex(
&self,
glyph_index: NSUInteger,
is_valid_index: *mut Bool,
) -> CGGlyph
Available on crate feature objc2-core-graphics only.
pub unsafe fn CGGlyphAtIndex_isValidIndex( &self, glyph_index: NSUInteger, is_valid_index: *mut Bool, ) -> CGGlyph
objc2-core-graphics only.§Safety
is_valid_index must be a valid pointer or null.
pub fn CGGlyphAtIndex(&self, glyph_index: NSUInteger) -> CGGlyph
objc2-core-graphics only.pub fn isValidGlyphIndex(&self, glyph_index: NSUInteger) -> bool
pub fn propertyForGlyphAtIndex( &self, glyph_index: NSUInteger, ) -> NSGlyphProperty
pub fn characterIndexForGlyphAtIndex( &self, glyph_index: NSUInteger, ) -> NSUInteger
pub fn glyphIndexForCharacterAtIndex( &self, char_index: NSUInteger, ) -> NSUInteger
Sourcepub unsafe fn getGlyphsInRange_glyphs_properties_characterIndexes_bidiLevels(
&self,
glyph_range: NSRange,
glyph_buffer: *mut CGGlyph,
props: *mut NSGlyphProperty,
char_index_buffer: *mut NSUInteger,
bidi_level_buffer: *mut c_uchar,
) -> NSUInteger
Available on crate feature objc2-core-graphics only.
pub unsafe fn getGlyphsInRange_glyphs_properties_characterIndexes_bidiLevels( &self, glyph_range: NSRange, glyph_buffer: *mut CGGlyph, props: *mut NSGlyphProperty, char_index_buffer: *mut NSUInteger, bidi_level_buffer: *mut c_uchar, ) -> NSUInteger
objc2-core-graphics only.§Safety
glyph_buffermust be a valid pointer or null.propsmust be a valid pointer or null.char_index_buffermust be a valid pointer or null.bidi_level_buffermust be a valid pointer or null.
pub fn setTextContainer_forGlyphRange( &self, container: &NSTextContainer, glyph_range: NSRange, )
NSTextContainer only.pub fn setLineFragmentRect_forGlyphRange_usedRect( &self, fragment_rect: CGRect, glyph_range: NSRange, used_rect: CGRect, )
objc2-core-foundation only.pub fn setExtraLineFragmentRect_usedRect_textContainer( &self, fragment_rect: CGRect, used_rect: CGRect, container: &NSTextContainer, )
NSTextContainer and objc2-core-foundation only.pub fn setLocation_forStartOfGlyphRange( &self, location: CGPoint, glyph_range: NSRange, )
objc2-core-foundation only.pub fn setNotShownAttribute_forGlyphAtIndex( &self, flag: bool, glyph_index: NSUInteger, )
pub fn setDrawsOutsideLineFragment_forGlyphAtIndex( &self, flag: bool, glyph_index: NSUInteger, )
pub fn setAttachmentSize_forGlyphRange( &self, attachment_size: CGSize, glyph_range: NSRange, )
objc2-core-foundation only.Sourcepub unsafe fn getFirstUnlaidCharacterIndex_glyphIndex(
&self,
char_index: *mut NSUInteger,
glyph_index: *mut NSUInteger,
)
pub unsafe fn getFirstUnlaidCharacterIndex_glyphIndex( &self, char_index: *mut NSUInteger, glyph_index: *mut NSUInteger, )
********************** Get layout information ***********************
§Safety
char_indexmust be a valid pointer or null.glyph_indexmust be a valid pointer or null.
pub fn firstUnlaidCharacterIndex(&self) -> NSUInteger
pub fn firstUnlaidGlyphIndex(&self) -> NSUInteger
Sourcepub unsafe fn textContainerForGlyphAtIndex_effectiveRange(
&self,
glyph_index: NSUInteger,
effective_glyph_range: NSRangePointer,
) -> Option<Retained<NSTextContainer>>
Available on crate feature NSTextContainer only.
pub unsafe fn textContainerForGlyphAtIndex_effectiveRange( &self, glyph_index: NSUInteger, effective_glyph_range: NSRangePointer, ) -> Option<Retained<NSTextContainer>>
NSTextContainer only.§Safety
effective_glyph_range must be a valid pointer or null.
Sourcepub unsafe fn textContainerForGlyphAtIndex_effectiveRange_withoutAdditionalLayout(
&self,
glyph_index: NSUInteger,
effective_glyph_range: NSRangePointer,
flag: bool,
) -> Option<Retained<NSTextContainer>>
Available on crate feature NSTextContainer only.
pub unsafe fn textContainerForGlyphAtIndex_effectiveRange_withoutAdditionalLayout( &self, glyph_index: NSUInteger, effective_glyph_range: NSRangePointer, flag: bool, ) -> Option<Retained<NSTextContainer>>
NSTextContainer only.§Safety
effective_glyph_range must be a valid pointer or null.
pub fn usedRectForTextContainer(&self, container: &NSTextContainer) -> CGRect
NSTextContainer and objc2-core-foundation only.Sourcepub unsafe fn lineFragmentRectForGlyphAtIndex_effectiveRange(
&self,
glyph_index: NSUInteger,
effective_glyph_range: NSRangePointer,
) -> CGRect
Available on crate feature objc2-core-foundation only.
pub unsafe fn lineFragmentRectForGlyphAtIndex_effectiveRange( &self, glyph_index: NSUInteger, effective_glyph_range: NSRangePointer, ) -> CGRect
objc2-core-foundation only.§Safety
effective_glyph_range must be a valid pointer or null.
Sourcepub unsafe fn lineFragmentRectForGlyphAtIndex_effectiveRange_withoutAdditionalLayout(
&self,
glyph_index: NSUInteger,
effective_glyph_range: NSRangePointer,
flag: bool,
) -> CGRect
Available on crate feature objc2-core-foundation only.
pub unsafe fn lineFragmentRectForGlyphAtIndex_effectiveRange_withoutAdditionalLayout( &self, glyph_index: NSUInteger, effective_glyph_range: NSRangePointer, flag: bool, ) -> CGRect
objc2-core-foundation only.§Safety
effective_glyph_range must be a valid pointer or null.
Sourcepub unsafe fn lineFragmentUsedRectForGlyphAtIndex_effectiveRange(
&self,
glyph_index: NSUInteger,
effective_glyph_range: NSRangePointer,
) -> CGRect
Available on crate feature objc2-core-foundation only.
pub unsafe fn lineFragmentUsedRectForGlyphAtIndex_effectiveRange( &self, glyph_index: NSUInteger, effective_glyph_range: NSRangePointer, ) -> CGRect
objc2-core-foundation only.§Safety
effective_glyph_range must be a valid pointer or null.
Sourcepub unsafe fn lineFragmentUsedRectForGlyphAtIndex_effectiveRange_withoutAdditionalLayout(
&self,
glyph_index: NSUInteger,
effective_glyph_range: NSRangePointer,
flag: bool,
) -> CGRect
Available on crate feature objc2-core-foundation only.
pub unsafe fn lineFragmentUsedRectForGlyphAtIndex_effectiveRange_withoutAdditionalLayout( &self, glyph_index: NSUInteger, effective_glyph_range: NSRangePointer, flag: bool, ) -> CGRect
objc2-core-foundation only.§Safety
effective_glyph_range must be a valid pointer or null.
pub fn extraLineFragmentRect(&self) -> CGRect
objc2-core-foundation only.pub fn extraLineFragmentUsedRect(&self) -> CGRect
objc2-core-foundation only.pub fn extraLineFragmentTextContainer( &self, ) -> Option<Retained<NSTextContainer>>
NSTextContainer only.pub fn locationForGlyphAtIndex(&self, glyph_index: NSUInteger) -> CGPoint
objc2-core-foundation only.pub fn notShownAttributeForGlyphAtIndex(&self, glyph_index: NSUInteger) -> bool
pub fn drawsOutsideLineFragmentForGlyphAtIndex( &self, glyph_index: NSUInteger, ) -> bool
pub fn attachmentSizeForGlyphAtIndex(&self, glyph_index: NSUInteger) -> CGSize
objc2-core-foundation only.pub fn truncatedGlyphRangeInLineFragmentForGlyphAtIndex( &self, glyph_index: NSUInteger, ) -> NSRange
Sourcepub unsafe fn glyphRangeForCharacterRange_actualCharacterRange(
&self,
char_range: NSRange,
actual_char_range: NSRangePointer,
) -> NSRange
pub unsafe fn glyphRangeForCharacterRange_actualCharacterRange( &self, char_range: NSRange, actual_char_range: NSRangePointer, ) -> NSRange
********************** More sophisticated queries ***********************
§Safety
actual_char_range must be a valid pointer or null.
Sourcepub unsafe fn characterRangeForGlyphRange_actualGlyphRange(
&self,
glyph_range: NSRange,
actual_glyph_range: NSRangePointer,
) -> NSRange
pub unsafe fn characterRangeForGlyphRange_actualGlyphRange( &self, glyph_range: NSRange, actual_glyph_range: NSRangePointer, ) -> NSRange
§Safety
actual_glyph_range must be a valid pointer or null.
pub fn glyphRangeForTextContainer(&self, container: &NSTextContainer) -> NSRange
NSTextContainer only.pub fn rangeOfNominallySpacedGlyphsContainingIndex( &self, glyph_index: NSUInteger, ) -> NSRange
pub fn boundingRectForGlyphRange_inTextContainer( &self, glyph_range: NSRange, container: &NSTextContainer, ) -> CGRect
NSTextContainer and objc2-core-foundation only.pub fn glyphRangeForBoundingRect_inTextContainer( &self, bounds: CGRect, container: &NSTextContainer, ) -> NSRange
NSTextContainer and objc2-core-foundation only.pub fn glyphRangeForBoundingRectWithoutAdditionalLayout_inTextContainer( &self, bounds: CGRect, container: &NSTextContainer, ) -> NSRange
NSTextContainer and objc2-core-foundation only.Sourcepub unsafe fn glyphIndexForPoint_inTextContainer_fractionOfDistanceThroughGlyph(
&self,
point: CGPoint,
container: &NSTextContainer,
partial_fraction: *mut CGFloat,
) -> NSUInteger
Available on crate features NSTextContainer and objc2-core-foundation only.
pub unsafe fn glyphIndexForPoint_inTextContainer_fractionOfDistanceThroughGlyph( &self, point: CGPoint, container: &NSTextContainer, partial_fraction: *mut CGFloat, ) -> NSUInteger
NSTextContainer and objc2-core-foundation only.§Safety
partial_fraction must be a valid pointer or null.
pub fn glyphIndexForPoint_inTextContainer( &self, point: CGPoint, container: &NSTextContainer, ) -> NSUInteger
NSTextContainer and objc2-core-foundation only.pub fn fractionOfDistanceThroughGlyphForPoint_inTextContainer( &self, point: CGPoint, container: &NSTextContainer, ) -> CGFloat
NSTextContainer and objc2-core-foundation only.Sourcepub unsafe fn characterIndexForPoint_inTextContainer_fractionOfDistanceBetweenInsertionPoints(
&self,
point: CGPoint,
container: &NSTextContainer,
partial_fraction: *mut CGFloat,
) -> NSUInteger
Available on crate features NSTextContainer and objc2-core-foundation only.
pub unsafe fn characterIndexForPoint_inTextContainer_fractionOfDistanceBetweenInsertionPoints( &self, point: CGPoint, container: &NSTextContainer, partial_fraction: *mut CGFloat, ) -> NSUInteger
NSTextContainer and objc2-core-foundation only.§Safety
partial_fraction must be a valid pointer or null.
Sourcepub unsafe fn getLineFragmentInsertionPointsForCharacterAtIndex_alternatePositions_inDisplayOrder_positions_characterIndexes(
&self,
char_index: NSUInteger,
a_flag: bool,
d_flag: bool,
positions: *mut CGFloat,
char_indexes: *mut NSUInteger,
) -> NSUInteger
Available on crate feature objc2-core-foundation only.
pub unsafe fn getLineFragmentInsertionPointsForCharacterAtIndex_alternatePositions_inDisplayOrder_positions_characterIndexes( &self, char_index: NSUInteger, a_flag: bool, d_flag: bool, positions: *mut CGFloat, char_indexes: *mut NSUInteger, ) -> NSUInteger
objc2-core-foundation only.§Safety
positionsmust be a valid pointer or null.char_indexesmust be a valid pointer or null.
pub fn enumerateLineFragmentsForGlyphRange_usingBlock( &self, glyph_range: NSRange, block: &DynBlock<dyn Fn(CGRect, CGRect, NonNull<NSTextContainer>, NSRange, NonNull<Bool>)>, )
NSTextContainer and block2 and objc2-core-foundation only.pub fn enumerateEnclosingRectsForGlyphRange_withinSelectedGlyphRange_inTextContainer_usingBlock( &self, glyph_range: NSRange, selected_range: NSRange, text_container: &NSTextContainer, block: &DynBlock<dyn Fn(CGRect, NonNull<Bool>)>, )
NSTextContainer and block2 and objc2-core-foundation only.Sourcepub fn drawBackgroundForGlyphRange_atPoint(
&self,
glyphs_to_show: NSRange,
origin: CGPoint,
)
Available on crate feature objc2-core-foundation only.
pub fn drawBackgroundForGlyphRange_atPoint( &self, glyphs_to_show: NSRange, origin: CGPoint, )
objc2-core-foundation only.********************** Drawing support ***********************
pub fn drawGlyphsForGlyphRange_atPoint( &self, glyphs_to_show: NSRange, origin: CGPoint, )
objc2-core-foundation only.Sourcepub unsafe fn showCGGlyphs_positions_count_font_textMatrix_attributes_inContext(
&self,
glyphs: NonNull<CGGlyph>,
positions: NonNull<CGPoint>,
glyph_count: NSInteger,
font: &UIFont,
text_matrix: CGAffineTransform,
attributes: &NSDictionary<NSAttributedStringKey, AnyObject>,
cg_context: &CGContext,
)
Available on crate features UIFont and objc2-core-foundation and objc2-core-graphics only.
pub unsafe fn showCGGlyphs_positions_count_font_textMatrix_attributes_inContext( &self, glyphs: NonNull<CGGlyph>, positions: NonNull<CGPoint>, glyph_count: NSInteger, font: &UIFont, text_matrix: CGAffineTransform, attributes: &NSDictionary<NSAttributedStringKey, AnyObject>, cg_context: &CGContext, )
UIFont and objc2-core-foundation and objc2-core-graphics only.§Safety
glyphsmust be a valid pointer.positionsmust be a valid pointer.attributesgeneric should be of the correct type.
Sourcepub unsafe fn fillBackgroundRectArray_count_forCharacterRange_color(
&self,
rect_array: NonNull<CGRect>,
rect_count: NSUInteger,
char_range: NSRange,
color: &UIColor,
)
Available on crate features UIColor and objc2-core-foundation only.
pub unsafe fn fillBackgroundRectArray_count_forCharacterRange_color( &self, rect_array: NonNull<CGRect>, rect_count: NSUInteger, char_range: NSRange, color: &UIColor, )
UIColor and objc2-core-foundation only.§Safety
rect_array must be a valid pointer.
pub fn drawUnderlineForGlyphRange_underlineType_baselineOffset_lineFragmentRect_lineFragmentGlyphRange_containerOrigin( &self, glyph_range: NSRange, underline_val: NSUnderlineStyle, baseline_offset: CGFloat, line_rect: CGRect, line_glyph_range: NSRange, container_origin: CGPoint, )
NSAttributedString and objc2-core-foundation only.pub fn underlineGlyphRange_underlineType_lineFragmentRect_lineFragmentGlyphRange_containerOrigin( &self, glyph_range: NSRange, underline_val: NSUnderlineStyle, line_rect: CGRect, line_glyph_range: NSRange, container_origin: CGPoint, )
NSAttributedString and objc2-core-foundation only.pub fn drawStrikethroughForGlyphRange_strikethroughType_baselineOffset_lineFragmentRect_lineFragmentGlyphRange_containerOrigin( &self, glyph_range: NSRange, strikethrough_val: NSUnderlineStyle, baseline_offset: CGFloat, line_rect: CGRect, line_glyph_range: NSRange, container_origin: CGPoint, )
NSAttributedString and objc2-core-foundation only.pub fn strikethroughGlyphRange_strikethroughType_lineFragmentRect_lineFragmentGlyphRange_containerOrigin( &self, glyph_range: NSRange, strikethrough_val: NSUnderlineStyle, line_rect: CGRect, line_glyph_range: NSRange, container_origin: CGPoint, )
NSAttributedString and objc2-core-foundation only.Source§impl NSLayoutManager
Methods declared on superclass NSObject.
impl NSLayoutManager
Methods declared on superclass NSObject.
Source§impl NSLayoutManager
NSLayoutManagerDeprecated.
impl NSLayoutManager
NSLayoutManagerDeprecated.
Sourcepub unsafe fn glyphAtIndex_isValidIndex(
&self,
glyph_index: NSUInteger,
is_valid_index: *mut Bool,
) -> CGGlyph
Available on crate feature objc2-core-graphics only.
pub unsafe fn glyphAtIndex_isValidIndex( &self, glyph_index: NSUInteger, is_valid_index: *mut Bool, ) -> CGGlyph
objc2-core-graphics only.§Safety
is_valid_index must be a valid pointer or null.
pub fn glyphAtIndex(&self, glyph_index: NSUInteger) -> CGGlyph
objc2-core-graphics only.pub fn hyphenationFactor(&self) -> CGFloat
objc2-core-foundation only.Sourcepub fn setHyphenationFactor(&self, hyphenation_factor: CGFloat)
👎Deprecated: Please use usesDefaultHyphenation or -[NSParagraphStyle hyphenationFactor] instead.Available on crate feature objc2-core-foundation only.
pub fn setHyphenationFactor(&self, hyphenation_factor: CGFloat)
objc2-core-foundation only.Setter for hyphenationFactor.
Sourcepub unsafe fn showCGGlyphs_positions_count_font_matrix_attributes_inContext(
&self,
glyphs: NonNull<CGGlyph>,
positions: NonNull<CGPoint>,
glyph_count: NSUInteger,
font: &UIFont,
text_matrix: CGAffineTransform,
attributes: &NSDictionary<NSAttributedStringKey, AnyObject>,
graphics_context: &CGContext,
)
👎DeprecatedAvailable on crate features UIFont and objc2-core-foundation and objc2-core-graphics only.
pub unsafe fn showCGGlyphs_positions_count_font_matrix_attributes_inContext( &self, glyphs: NonNull<CGGlyph>, positions: NonNull<CGPoint>, glyph_count: NSUInteger, font: &UIFont, text_matrix: CGAffineTransform, attributes: &NSDictionary<NSAttributedStringKey, AnyObject>, graphics_context: &CGContext, )
UIFont and objc2-core-foundation and objc2-core-graphics only.§Safety
glyphsmust be a valid pointer.positionsmust be a valid pointer.attributesgeneric should be of the correct type.
Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
Available on crate feature UIIndirectScribbleInteraction only.
pub fn class(&self) -> &'static AnyClass
UIIndirectScribbleInteraction only.Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init/new methods).
§Example
Check that an instance of NSObject has the precise class NSObject.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load instead.Available on crate feature UIIndirectScribbleInteraction only.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load instead.UIIndirectScribbleInteraction only.Use Ivar::load instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T.
See Ivar::load_ptr for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Available on crate feature UIIndirectScribbleInteraction only.
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
UIIndirectScribbleInteraction only.Attempt to downcast the object to a class of type T.
This is the reference-variant. Use Retained::downcast if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString to a NSMutableString,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass: for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject.
§Panics
This works internally by calling isKindOfClass:. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject and
NSProxy implement this method.
§Examples
Cast an NSString back and forth from NSObject.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();Try (and fail) to cast an NSObject to an NSString.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}Trait Implementations§
Source§impl AsRef<AnyObject> for NSLayoutManager
impl AsRef<AnyObject> for NSLayoutManager
Source§impl AsRef<NSLayoutManager> for NSLayoutManager
impl AsRef<NSLayoutManager> for NSLayoutManager
Source§impl AsRef<NSObject> for NSLayoutManager
impl AsRef<NSObject> for NSLayoutManager
Source§impl Borrow<AnyObject> for NSLayoutManager
impl Borrow<AnyObject> for NSLayoutManager
Source§impl Borrow<NSObject> for NSLayoutManager
impl Borrow<NSObject> for NSLayoutManager
Source§impl ClassType for NSLayoutManager
impl ClassType for NSLayoutManager
Source§const NAME: &'static str = "NSLayoutManager"
const NAME: &'static str = "NSLayoutManager"
Source§type ThreadKind = <<NSLayoutManager as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<NSLayoutManager as ClassType>::Super as ClassType>::ThreadKind
Source§impl Debug for NSLayoutManager
impl Debug for NSLayoutManager
Source§impl DefaultRetained for NSLayoutManager
impl DefaultRetained for NSLayoutManager
Source§impl Deref for NSLayoutManager
impl Deref for NSLayoutManager
Source§impl Hash for NSLayoutManager
impl Hash for NSLayoutManager
Source§impl Message for NSLayoutManager
impl Message for NSLayoutManager
Source§impl NSCoding for NSLayoutManager
impl NSCoding for NSLayoutManager
Source§impl NSObjectProtocol for NSLayoutManager
impl NSObjectProtocol for NSLayoutManager
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass directly, or cast your objects with AnyObject::downcast_ref