当前位置: 首页 > 面试题库 >

NSR范围

景鹏云
2023-03-14
问题内容

如何在Swift中转换NSRangeRange<String.Index>

我想使用以下UITextFieldDelegate方法:

    func textField(textField: UITextField!,
        shouldChangeCharactersInRange range: NSRange,
        replacementString string: String!) -> Bool {

textField.text.stringByReplacingCharactersInRange(???, withString: string)

在此处输入图片说明


问题答案:

NSString版本(与Swift String相对)replacingCharacters(in: NSRange, with: NSString)接受an NSRange,因此一个简单的解决方案是将其 转换StringNSStringfirst。在Swift3和2中,委托和替换方法的名称略有不同,因此取决于您使用的是哪种Swift:

UITextField3.0

func textField(_ textField: UITextField,
               shouldChangeCharactersIn range: NSRange,
               replacementString string: String) -> Bool {

  let nsString = textField.text as NSString?
  let newString = nsString?.replacingCharacters(in: range, with: string)
}

UITextField2.x

func textField(textField: UITextField,
               shouldChangeCharactersInRange range: NSRange,
               replacementString string: String) -> Bool {

    let nsString = textField.text as NSString?
    let newString = nsString?.stringByReplacingCharactersInRange(range, withString: string)
}


 类似资料:
  • 问题内容: 我最近开始学习python3。 在 python 2 中,可以使用函数来分配列表元素。 如使用功能时在 python 3 中一样 为什么会这样呢? python为什么要进行此更改? 是恩赐还是祸根? 问题答案: Python 3 在很多地方使用了 迭代器 ,而 python 2 使用了 列表 。文档给出了详细的解释,包括对的更改。 优点是,如果您使用大范围的迭代器或映射, Python

  • Rails 当调用 render 或 redirect_to 后需要马上"返回"时,把 return 放到下一行, 不要放到同一行。 # 错误 render :text => 'Howdy' and return # 正确 render :text => 'Howdy' return # still bad render :text => 'Howdy' and return if foo.p

  • Scope是一个特殊的JavaScript对象,它将控制器与视图连接起来。 范围包含模型数据。 在控制器中,模型数据通过$ scope对象访问。 <script> var mainApp = angular.module("mainApp", []); mainApp.controller("shapeController", function($scope) { $sco

  • 在上一章中,我们在CoffeeScript中看到了Arrays,在编程时我们将面临一些场景,我们必须在数组中存储一系列数值,如下所示。 numbers =[1,2,3,4,5,6,7,8,9,10] <p></p> CoffeeScript提供了一种表达包含一系列数值的数组的简短方法,称为ranges 。 CoffeeScript的这个功能灵感来自Ruby。 语法 (Syntax) 范围由两个数

  • 范围是元素访问的抽象。 这种抽象使得能够在大量容器类型上使用大量算法。 范围强调容器元素的访问方式,而不是容器的实现方式。 范围是一个非常简单的概念,它基于类型是否定义了某些成员函数集。 范围是D的组成部分.D的切片恰好是最强大的范围RandomAccessRange的实现,并且Phobos中有许多范围特征。 许多Phobos算法返回临时范围对象。 例如,filter()在以下代码中选择大于10的

  • 范围是指定值序列的简写。 范围由序列中的第一个和最后一个值表示,范围可以是包含的或排他的。 包含范围包括从第一个到最后一个的所有值,而独占范围包括除最后一个之外的所有值。 以下是范围文字的一些示例 - 1..10 - 包含范围的示例 1 .. <10 - 独家范围的一个例子 'a'..'x' - 范围也可以包含字符 10..1 - 范围也可以按降序排列 'x'..'a' - 范围也可以由字符组成,