如何获取字符串中第一行的范围?

2024-03-09

我想更改第一行文本的格式NSTextView(给它不同的字体大小和粗细,使其看起来像标题)。因此,我需要第一行的范围。一种方法是这样:

guard let firstLineString = textView.string.components(separatedBy: .newlines).first else {
    return
}
let range = NSRange(location: 0, length: firstLineString.count)

但是,我可能正在处理相当长的文本,因此首先分割文本似乎效率低下entire当我需要的只是第一行组件时,将字符串转换为行组件。因此,使用firstIndex(where:) method:

let firstNewLineIndex = textView.string.firstIndex { character -> Bool in
    return CharacterSet.newlines.contains(character)
}
// Then: Create an NSRange from 0 up to firstNewLineIndex. 

这不起作用,我收到错误:

无法转换类型 ' 的值(Unicode.Scalar) -> Bool'到预期的参数类型'Character'

因为contains方法不接受Character but a Unicode.Scalar作为参数(这对我来说并没有什么意义,因为那么它应该被称为UnicodeScalarSet而不是一个CharacterSet, 但是不要紧...)。

我的问题是:

我怎样才能以有效的方式实现这一点,而不需要先切片整个字符串?

(它不一定必须使用firstIndex(where:)方法,但似乎是可行的方法。)


A String.Index第一行的范围string可以通过以下方式获得

let range = string.lineRange(for: ..<string.startIndex)

如果您需要它作为NSRange then

let nsRange = NSRange(range, in: string)

就可以了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取字符串中第一行的范围? 的相关文章

  • 如何在 xslt 2.0 中解析字符串到日期

    是否可以像这样转换字符串30042013 2013 年 4 月 30 日 日期格式 所以我可以稍后在类似的函数中使用它format date 就像托马拉克说的 你可以使用substring and concat 要构建一个字符串 您可以将其
  • 将 Java 字符串转换为 sql.Timestamp

    收到以下格式的字符串 YYYY MM DD HH MM SS NNNNNN 时间戳来自 DB2 数据库 我需要将其解析为 java sql Timestamp 并且不丢失任何精度 到目前为止 我一直无法找到现有的代码来解析远至微秒的数据 S
  • 是否可以更改枚举中的关联值?

    我正在使用 Swift 枚举 想知道是否有一种方法可以更改枚举的关联值 例如下面的代码尝试但失败了 enum myEnum case SomeCase Int mutating func someFunc switch self case
  • R:ifelse 中的字符串列表

    我正在寻找与 MySQL 中的 where var in 语句类似的东西 我的代码如下 data lt data frame id 10001 10030 cc1 rep c a b c 10 attach data data new lt
  • 二元运算符“/”不能应用于两个(Int)操作数[重复]

    这个问题在这里已经有答案了 我得到了Binary operator cannot be applied to two Int operands当我将以下代码放入 Xcode 中的 Swift Playground 时出错 func sumO
  • 带约束的嵌套集合视图的意外行为 (Swift 4)

    我的表格视图中有一个单元格 其中包含水平分页集合视图 该集合视图的每个页面内都有一个垂直集合视图 为了避免 滚动滚动 问题 我在垂直集合视图中禁用了垂直滚动 垂直集合视图的单元格计数不是静态的 可以是任意数字 因此 这会产生一个问题 集合视
  • 使用 BGTaskScheduler 进行后台获取与调试模拟完美配合,但在实践中却不起作用

    我在 appDelegate 的 didFinishLaunchingWithOptions 中注册后台获取任务 BGTaskScheduler shared register forTaskWithIdentifier Backgroun
  • 循环多个 UIAlertController

    在某些情况下 我的应用程序需要显示多个警报消息 错误消息在启动时收集 并且需要一次向用户显示一条 当第一个被确认后 应该呈现下一个 问题在于 显然 它们都试图同时执行 有没有一种聪明的方法可以同步执行此操作 这是一些简单描述我想要做的事情的
  • 十六进制字符串的运行长度编码(包括换行符)

    我正在使用以下方法实现游程长度编码GZipStreamC winforms 应用程序中的类 数据以一系列由换行符分隔的字符串形式提供 如下所示 FFFFFFFF FFFFFEFF FDFFFFFF 00FFFFFF 在压缩之前 我将字符串转
  • UILabel 中的文本未垂直居中

    我使用以下代码创建了一个标签 func setupValueLabel valueLabel numberOfLines 1 valueLabel font UIFont name Avenir Black size 50 valueLab
  • 检查 Swift 中关联类型是否符合协议

    在类似情况下 如何检查对象是否符合 可表示 协议 protocol Representable associatedtype RepresentType var representType RepresentType get set cla
  • 如何在EditText中显示格式化文本?

    现在我正在编写简单的笔记应用程序 我需要在 EditText 中显示格式化的单独选定文本 I tried EditText et EditText findViewById R id edittext String string int s
  • 奇怪的跨线程 UI 错误

    我正在编写一个 WinForms 应用程序 它有两种模式 控制台或 GUI 同一解决方案中的三个项目 一个用于控制台应用程序 一个用于 UI 表单 第三个用于保存两个界面也将连接的逻辑 控制台应用程序运行绝对流畅 保存用户选择的模型 它有一
  • 为什么在迭代字典时会出现“类型 [object] 的值没有成员 'lowercaseString'” 错误? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有几个对象 Struct object var title String var one object green v
  • UITableView 快速获取 titleForHeadersInSection

    我想在 UITableView 的部分中设置标题的标题 语法是什么swift设置该部分中标题的标题 func tableView tableView UITableView titleForHeaderInSection section I
  • 如何在 R 中将字符串解析为层次结构或树

    有没有办法将表示组的字符串解析为 R 中的层次结构 假设我的小组结构如下 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 3 1 1 3 1 1 1 3 2 1 1 3 3 1 2 1 2 1 1 2 1 1 1 2 1 2 1
  • Swift 中的柯里函数

    我想创建一个返回柯里函数的函数 如下所示 func addTwoNumbers a Int b Int gt Int return a b addTwoNumbers 4 b 6 Result 10 var add4 addTwoNumbe
  • 如何检测 Java 字符串中的 unicode 字符?

    假设我有一个包含 的字符串 我如何找到所有这些 un icode 字符 我应该测试他们的代码吗 我该怎么做呢 例如 给定字符串 A X 我想将其转换为 AYXY 我想对其他 unicode 字符做同样的事情 并且我不想将它们存储在某种翻译映
  • 如何在Python中按AaB而不是ABa顺序对字符串进行排序

    我正在尝试对字符串进行排序 为 punnetsquare 制作基因型 我目前的实现是 unsorted genotype ABaB sorted genotype sorted list unsorted genotype sorted s
  • 可以获取位置,但无法获取航向

    我目前只使用模拟器 但我在 iOS 模拟器上快速使用 CoreLocation 时遇到问题 我得到此代码打印的位置更新 但从未得到标题 我不想当然 我正在尝试制作一个指南针类型的应用程序 它将显示目标的方位 class CompassVie

随机推荐

  • 自定义qt项目时使用条件

    再会 我有一个 qt 项目 我想使用 pro 文件条件对其进行自定义 值得注意的是 我想使用一个 pro 文件来获取多个输出 如下所示 DEFINES APP1 0 APP2 1 DEFINES TYPE APP1 if TYPE APP1
  • AG-Grid 大数据集渲染时间(慢)

    我有一个网格 其中包含大量但合理的数据 大约 12 000 个单元格 340 列和 34 行 我知道这看起来像是一个横向表格 但对于我们的应用程序来说 它更可能有大量的列和更少的行 当数据约为 2300 个单元格 68 列和 34 行 时
  • 如何访问pgadmin数据库设计器?

    我正在运行 pgadmin 1 18 在选项窗格中 我可以设置数据库设计器的字体 但我发现绝对无法访问此数据库设计器窗口 没有图标或菜单或任何 这是 pgadmin 1 18 下的可用功能吗 应该启用它吗 图形查询生成器 Source ht
  • Accurev 中的 diff 与 basic 和 backing 之间有什么区别

    Accurev 中与基础的差异和与支持的差异有什么区别 我从您在本论坛中的其他帖子中假设 这里的上下文将是在您的工作区中根据 支持 或 基础 对文件进行比较 与基础进行比较将在进行更改之前将您工作区中当前拥有的文件与您开始使用的版本进行比较
  • Get-ADUser 错误:枚举上下文无效

    我前几天发布了这个问题从分组对象中提取电子邮件 https stackoverflow com questions 30856287 extract e mail from grouped objects 30856711 noredire
  • AFNetworking 启用 GZIP

    我在 AFNetworking 网站上查看支持 GZIP 压缩 服务器响应的 Gzip 解压缩已内置于 AFNetworking 中 因为 NSURLConnection 将使用 Content Encoding gzip HTTP 标头自
  • ActionMailer和开发模式,可以写入文件什么的吗?

    我想在本地测试我的注册过程 开发模式 如何测试电子邮件的发送和呈现方式等 我不是指单元测试或集成测试 而是指在开发我的应用程序并进入注册页面等时 我希望它发送电子邮件 但发送到不使用 smtp 的文件 这可能吗 我有什么选择 这是可配置的c
  • 有没有办法让 Javascript 在 DOMPDF 生成的 PDF 中工作?

    我目前正在测试 DOMPDF 并让它非常适合我的目的 包括 CSS 样式 显示从 mysql 数据库获取的内容等 现在我尝试使用一些Javascript 但它不起作用 我使用了一个非常简单的脚本进行测试 页面上某处的 HTML div st
  • 在 WKUIDelegate SwiftUI 上实现 Javascript 警报并确认?

    由于我是 Swift 新手 我不确定如何为 Swift 编写一个函数 以便从 Web 应用程序进行交互式 Javascript 警报和确认 我正在使用 SwiftUI 创建一个 Web 应用程序 需要为我的 Swift Web 应用程序实现
  • 如何使用xslt合并元素?

    我有一个带有元素的段落参考类型 Example 输入文件
  • UILocalNotification 不执行任何操作

    这似乎是一个愚蠢的问题 但这是我第一次使用 UILocalNotification 我无法让它进行快速测试 它只是没有做任何事情 1 我在AppDelegate中创建了2个变量 let today NSDate let notificati
  • Java 中的类型映射

    我想实现这样一个地图 Map
  • 清除核心数据中的上下文:重置与删除注册对象?

    我一直在寻找与此相关的帖子 但我不完全理解 有什么区别 context reset and for NSManagedObjectID objId in objectIds context deleteObject context obje
  • React - 通过单击提交按钮将项目从输入添加到列表中

    我正在练习反应 并尝试通过单击提交按钮将项目添加到输入列表中 我更喜欢使用 state 和 setState 我很想得到一些帮助 我认为不需要我的代码 但无论如何这是它 class App extends Component state u
  • JACOB 库在多线程中使用时失败

    我在两个因此启动的相同线程中使用 JACOB 时遇到了一个奇怪的问题 我有一个实用程序类 它使用静态 ActiveXObject 字段将各种请求分派到 WMI 第一个线程工作正常 当第二个线程启动时 出现以下异常 com jacob com
  • 通过接口枚举 - 性能损失

    我和我的同事就通过索引访问列表的性能发生了一些争议 这非常接近圣战 VS通过枚举器 为了根据一些事实进行操作 我编写了以下测试 static void Main string args const int count 10000000 va
  • 当内存带宽受限时 SSE 和 AVX 的性能

    在下面的代码中 我更改了 dataLen 并获得了不同的效率 dataLen 400 SSE 时间 758000 us AVX 时间 483000 us SSE gt AVX dataLen 2400 SSE 时间 4212000 us A
  • 使用 Android Profiler 时应用程序不断崩溃

    我的应用程序正在执行一些位置跟踪并在需要时更新数据库 该应用程序已运行 2 天 没有任何问题 现在我尝试使用 Android Profiler Android Studio 3 01 但是 一旦我打开它 它就会运行几秒钟 然后开始使应用程序
  • 维基百科示例中高斯-牛顿方法的实现

    我对 Python 比较陌生 正在尝试实现高斯 牛顿方法 特别是维基百科页面上的示例 高斯 牛顿算法 https en wikipedia org wiki Gauss E2 80 93Newton algorithm 3个例子 以下是我到
  • 如何获取字符串中第一行的范围?

    我想更改第一行文本的格式NSTextView 给它不同的字体大小和粗细 使其看起来像标题 因此 我需要第一行的范围 一种方法是这样 guard let firstLineString textView string components s