首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

AttributedString——不仅仅让文字更漂亮

中需要使用Swift的点或键语法按名称访问属性,不仅可以保证类型安全,而且可以获得编译时检查的优势。...AttributedString中基本不采用NSAttributedString如下的属性访问方式,极大的减少出错几率 // 可能出现类型不匹配let attributes: [NSAttributedString.Key...transformingAttributes最多支持获取5个属性。 Range 在本文之前的代码中,已经多次使用过Range来对属性字符串的内容进行访问或修改。...在本地化的属性字符串中,也提供了类似的功能,并且会在字符串中设置对应的属性。提供了更高的灵活性。...自定义属性 使用自定义属性,不仅有利于开发者创建更符合自身要求的属性字符串,而且通过在Markdown文本中添加自定义属性信息,进一步降低信息和代码的耦合度,提高灵活度。

3.9K40

NSTextField控件应用详解 原

= @"请填写你的梦想"; //设置默认显示的提示字符串 使用的带属性的字符串 NSMutableAttributedString * attriString = [[NSMutableAttributedString...NSTextField类中常用的属性和方法列举如下: //设置默认显示的提示文字 @property (nullable, copy) NSString *placeholderString NS_AVAILABLE_MAC...(10_10); //设置默认显示的提示文字 带属性的文本 @property (nullable, copy) NSAttributedString *placeholderAttributedString...NSControl类,NSControl类中定义了许多属性可以获取到文本框中的文本,例如stringValue属性,本文中不再赘述。    ...关于NSTextFieldDelegate协议,其实际上是继承自NSControlTextEditingDelegate协议,这个协议中定义了NSTextField控件在活动过程中的回调方法,例如开始编辑

1.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Sendable 和 @Sendable 闭包代码实例详解

    例如,整型支持该协议: extension Int: Sendable {} 一旦我们创建了一个具有 Int 类型的单一属性的值类型结构体,我们就隐式地得到了对 Sendable 协议的支持。...例如,你可以在例如 Swift package这样的模块中定义以下类型: public struct Article { internal var title: String } Article...我们可以把这个属性添加到我们的User类中,并摆脱这个错误: class User: @unchecked Sendable { let name: String init(name:...由于我们给自己和同事增加了额外的责任,我不鼓励使用这个属性,建议使用组合、最终类或值类型来实现我们的目的。 如何使用 @Sendabele 函数可以跨并发域传递,因此也需要可发送的一致性。...一个典型的例子是在Actor isolation中使用闭包。

    1.4K20

    Swift 中的 Sendable 和 @Sendable 闭包

    标准库中的许多类型已经支持了Sendable协议,消除了对许多类型添加一致性的要求。由于标准库的支持,编译器可以为你的自定义类型创建隐式一致性。...例如,整型支持该协议: extension Int: Sendable {} 一旦我们创建了一个具有Int类型的单一属性的值类型结构体,我们就隐式地得到了对Sendable协议的支持。...例如,你可以在例如 Swift package这样的模块中定义以下类型: public struct Article { internal var title: String } Article...由于我们给自己和同事增加了额外的责任,我不鼓励使用这个属性,建议使用组合、最终类或值类型来实现我们的目的。 如何使用 @Sendabele 函数可以跨并发域传递,因此也需要可发送的一致性。...使用@Sendable属性,我们将告诉编译器,他不需要额外的同步,因为闭包中所有捕获的值都是线程安全的。一个典型的例子是在Actor isolation中使用闭包。

    1.5K30

    Apple 营收有望再创新高 | Swift 周报 issue 47

    #proposed-solution2) 讨论从本地 HTML 文件创建属性字符串内容大概用户尝试在 Mac 应用程序的临时目录中显示来自 HTML 文件和 CSS 文件的属性字符串。...此外,用户尝试使用 NSAttributedString 类方法 loadFromHTML 创建属性字符串,但此方法返回 Void 而不是属性字符串。...用户在特定情况下希望自定义字符串插值的行为,特别是在本地化字符串的上下文中。 他们提供了一个示例,其中使用可变大小写的字符串插值动态构造本地化字符串键。...他们寻求澄清这种方法是否可以接受,或者是否有更好的解决方案可以在不违反任何规则的情况下实现预期结果。...该摘要捕获了用户对 appendLiteral 的正确使用以及他们在 Swift 中为本地化字符串键自定义字符串插值的具体情况的询问。

    14032

    Ask Apple 2022 中与 Core Data 有关的问答 (下)

    如果用户在应用程序之外删除文档,例如在 Finder 中,我希望 Spotlight 中的索引与它一起被删除。所以我想如果索引可以存储在包文件夹中,那就可以解决这种情况。有没有办法正确处理这种情况?...检索 NSAttributedStringQ:我需要将 NSAttributedString 存储在数据库中,并且可以对属性字符串中的任何文本进行搜索。...但是在极少数情况下,例如你需要添加必须在类定义中声明的属性,此时应使用 Category/Extension 使你可以控制所需的类声明。...xxx+CoreDataProperties.swift 中是通过扩展为 Entity 的属性创建的声明,xxx+CoreDataClass.swift 是类的定义。...例如,当你创建一个带有字符串属性的新对象时,初始值( 在没有默认值的情况下 )是 nil,这在对象被验证之前( 通常在 save 时 )是没有问题的。

    3.3K20

    Swift 3.0 探索之 UILabel

    开篇 最近闲来无事,看看Swift3.0,发现和我认识的1.0有很大的不同了,如果不学习一下估计会落伍了,所以探究一下 Swift 在开发中的使用(当然目前是初级水平,一起进步嘛,也欢迎菜鸟,大神一起探讨...QQ群 139852091) 正题 UILabel是我们开发中常用的控件了,我今天就拿它开刀,看一下我们在开发中常用的UILabel属性 创建已经常规设置 //let 变量名字 = 变量类型...属性为true的时候 上面设置的lineBreakMode属性将失效 myLabel.adjustsFontSizeToFitWidth = true //当文字超出标签宽度时,自动调整文字大小...�图1 NSAttributedString 富文本 我们还经常使用 Label 的一个属性是NSAttributedString 我们看一下这个在Swift里面怎么使用 ****当设置NSAttributedString...属性的时候,设置的text将失效,其textColor、font等属性将保留没有被改变的(OC Swift通用属性)**** //富文本设置 let attributeString

    81530

    Swift 中的 Phantom(幻象)类型

    本周,让我们来看看一种技术,它可以让我们利用 Swift 的类型系统在编译时执行更多种类的数据验证——消除更多潜在的歧义来源,并帮助我们在整个代码库中保持类型安全——通过使用幻象类型(phantom types...为了能够尽可能多地重复使用我们原来的文档处理代码,我们继续使用与开始时相同的Document模型——只是现在它获得了一个Format属性,告诉我们正在处理什么样的文档: struct Document...String时,就像我们上面做的那样,我们通过传递对该类型本身的引用来传递我们希望字符串被解码的编码——在本例中是UTF8。...如果我们再深入一点,就会发现 Swift 标准库将我们上面提到的UTF8类型定义为另一个类似命名空间的枚举中的一个无大小写枚举,称为Unicode。...一个标准的模式 起初,幻象类型在 Swift 中可能看起来有点 "格格不入"。

    89720

    富文本AttributedString的总结

    在使用中通过将AttributedString赋值给控件的 attributedText 属性来添加文字样式。 可设置的控件有UILabel、UITextField和UITextView。...:attr2]; 设置连体属性 /* 注:NSLigatureAttributeName设置连体属性,取值为NSNumber对象(整数),1表示使用默认的连体字符,0表示不使用,2表示使用所有连体符号...之所以把 NSLinkAttributeName 属性单独列出来,是因为在 UILabel 和 UITextField 中是无法使用该属性的。...更准确点说是在UILabel 和 UITextField 中无法实现点击链接启动浏览器打开一个URL地址,因为在此过程中用到了一个代理函数。只能用在 UITextView 中。...return YES; } 注意: 实现textView的代理,否则调不到回调方法。 设置textView的 editable 属性为 NO,在可编辑的状态下是不可点击的。

    3.4K20

    Swift 中的幻象类型

    本周,让我们来看看一种技术,它可以让我们利用 Swift 的类型系统在编译时执行更多种类的数据验证——消除更多潜在的歧义来源,并帮助我们在整个代码库中保持类型安全——通过使用幻象类型(phantom types...为了能够尽可能多地重复使用我们原来的文档处理代码,我们继续使用与开始时相同的Document模型——只是现在它获得了一个Format属性,告诉我们正在处理什么样的文档: struct Document...String时,就像我们上面做的那样,我们通过传递对该类型本身的引用来传递我们希望字符串被解码的编码——在本例中是UTF8。...如果我们再深入一点,就会发现 Swift 标准库将我们上面提到的UTF8类型定义为另一个类似命名空间的枚举中的一个无大小写枚举,称为Unicode。...一个标准的模式 起初,幻象类型在 Swift 中可能看起来有点 "格格不入"。

    1.5K30

    玩转 Xcode Playground(上)

    如何创建 Playground 项目 在 Xcode 中创建 Playground 项目 在 Xcode 中,点击 File -> New -> Playground 即可创建一个格式为.playground...在 Swift Playgrounds 中创建 Playground 项目 在 Swift Playgrounds 4 中可以直接创建与 Xcode 兼容的 Playground 项目(.playground...在 Swift Playgrounds 4 中,点击侧边栏的编辑按钮,进入编辑模式,点击+按钮可创建新的 Page。...在输入新的代码后,可以采用输入 Shift-Return 的方式让 Playground 执行截至本行尚未执行的代码。此种方式在不希望反复执行长耗时代码段的情况下将非常有用(例如机器学习)。...如何创建实时视图 你可以使用实时视图来为 Playground 添加互动性,试验不同的用户界面元素,并建立自定义元素。

    4.1K20

    Swift 小仿微博列表

    前言     鉴于目前Swift的ABI(应用程序二进制接口)、API(应用程序编程接口) 基本稳定,对于Swift的学习有必要提上日程了,这个Swift仿微博列表的效果是我最近一边学习《Swift入门到精通...-李明杰》 一边练手的Demo,Swift新手还请关照~?    ...\\]" //表情匹配 [爱心] 富文本是由原始字符串经过一系列的正则匹配到目标字符串后,再经过一系列的字符串高亮、删除、替换等处理得到的 注意:每一个匹配项完成字符串处理后可能会改变原有字符串的...NSRange,进而导致另一个匹配项的Range在处理字符串时出现越界的崩溃问题!...1、列表页cell中的imageView的大小是固定平均分配的,而每张图片的大小和比例都是不一样的,为了保证图片不变形,按比例只展示图片的中心部分,怎么做哪?

    1.4K30

    iOS文本布局探讨之三——使用TextKit框架进行富文本布局

    iOS文本布局探讨之三——使用TextKit框架进行富文本布局 一、引言         关于图文混排,其实以前的博客已经讨论很多,在实际开发中,经常使用第三方的框架来完成排版的需求,其中RCLabel...在iOS6中,系统为UILabel,UITextView等这类文本渲染控件引入了NSAttributedString属性,有了NSAttributedString这个类,创建灵活多彩的文本控件变得十分轻松...,开发者只需要配置NSAttributedString属性字符串即可。...先看NSTextAttachment类中的一些常用属性与方法: //这个初始化方法用于创建携带任意数据的文本附件 - (instancetype)initWithData:(nullable NSData...) NSFileWrapper *fileWrapper; 结合UITextView可以为NSAttributedString属性字符串添加超链接,在代码回调中监听此超链接的回调可以获取NSTextAttachment

    2.1K20

    Swift-Runtime总结

    看看Swift Runtime ----       先不直接丢出结论,从下面的简单的代码入手,一步步的找出我们想要的答案:       我们定义一个纯Swift的类TestASwiftClass ,代码如下...Swift 纯Swift类的函数的调用已经不是OC的运行时发送消息,和C类似,在编译阶段就确定了调用哪一个函数,所以纯Swift的类我们是没办法通过运行时去获取到它的属性和方法的。      ...Swift 对于继承自OC的类,为了兼容OC,凡是继承与OC的都是保留了它的特性的,所以可以使用Runtime获取到它的属性和方法等等其他我们在OC中获得的东西。      ...API导出来给 Object-C 和 Runtime 使用的,如果你类继承自OC的类,这个标识符就会被自动加进去,加了这标识符的属性、方法无法保证都会被运行时调用,因为Swift会做静态优化,想要完全被声明成动态调用...对于纯粹的Swift类,由于前面的测试你知道无法拿到类的属性饭方法等,也就没办法进行方法的替换,但是对于继承自NSObject的类,由于集成了OC的所有特性,所以是可以利用Runtime的属性来进行方法替换

    96230

    Swift Runtime ?

    看看Swift  Runtime       先不直接丢出结论,从下面的简单的代码入手,一步步的找出我们想要的答案:       我们定义一个纯Swift的类  TestASwiftClass ,代码如下...Swift 纯Swift类的函数的调用已经不是OC的运行时发送消息,和C类似,在编译阶段就确定了调用哪一个函数,所以纯Swift的类我们是没办法通过运行时去获取到它的属性和方法的。      ...Swift 对于继承自OC的类,为了兼容OC,凡是继承与OC的都是保留了它的特性的,所以可以使用Runtime获取到它的属性和方法等等其他我们在OC中获得的东西。      ...API导出来给 Object-C 和 Runtime 使用的,如果你类继承自OC的类,这个标识符就会被自动加进去,加了这标识符的属性、方法无法保证都会被运行时调用,因为Swift会做静态优化,想要完全被声明成动态调用...对于纯粹的Swift类,由于前面的测试你知道无法拿到类的属性饭方法等,也就没办法进行方法的替换,但是对于继承自NSObject的类,由于集成了OC的所有特性,所以是可以利用Runtime的属性来进行方法替换

    4.9K71
    领券