作者:Arthur Knopper,原文链接,原文日期:2015-12-22
译者:钟颖Cyan;校对:Cwift;定稿:CMB
译者注:由于原文日期较早,文章代码已更新为新版本。
UITextChecker 对象可以用来对一个字符串进行拼写检查,在这篇教程里面我们将在一个 table VIEw 里面展示一些单词。当单词被选中的时候,会被进行拼写检查,拼写正确的背景将会变成绿色,否则将会变成红色。本教程在 Xcode 7.2 和 iOS 9 环境下进行。
打开 Xcode 并创建一个新的 Single VIEw Application。用 IOS9SpellingCheckerTutorial 作为项目的名字,然后根据你的习惯填写 Organization name 和 Organization IDentifIEr。选择 Swift 作为开发语言,并且确保 Devices 为仅 iPhone。
从 Storyboard 中把 VIEw Controller 删掉并拖拽一个 Navigation Controller 到空画布中,当初始 VIEw Controller 被删除时项目的入口就不存在了。选择 Navigation Controller 然后打开 Attribute Inspector,在 VIEw Controller 这个区域里面勾选 "Is Initial VIEw Controller"。
双击 table VIEw Controller 的 Navigation bar 然后把标题设置成 "Choose the right spelling"。选择 table VIEw Cell 后打开 Attribute Inspector,在 table VIEw Cell 这个区域把 IDentifIEr 设置成 "cell"。
Storyboard 看起来像是这样:
因为删除了 VIEw Controller 从 Storyboard,所以可以同时删掉 VIEwController.swift 文件。在项目中添加一个新的文件,选择 iOS->Source->Cocoa touch Class,把它命名成 tableVIEwController 并继承自 UItableVIEwController。
打开 tableVIEwController.swift 文件并添加下面的成员
let words = ["devalopment","development","devellopment"]
这个数组里面的字符串将会被展示到 table VIEw 上面。下一步,修改预定义的代理方法:
overrIDe func numberOfSections(in tableVIEw: UItableVIEw) -> Int { return 1; } overrIDe func tableVIEw(_ tableVIEw: UItableVIEw,numberOfRowsInSection section: Int) -> Int { return words.count } overrIDe func tableVIEw(_ tableVIEw: UItableVIEw,cellForRowAt indexPath: IndexPath) -> UItableVIEwCell { let cell = tableVIEw.dequeueReusableCell(withIDentifIEr: "cell",for: indexPath) // 配置 cell... cell.textLabel?.text = words[indexPath.row] cell.textLabel?.backgroundcolor = UIcolor.clear return cell }
通过单词数组来展示 table VIEw,有一个区域,一共三行。cell 的背景色设置成透明色,因为在之后 cell 的背景色将会改变。当用户选中列表中的一行时,代理方法 tableVIEw(_:dIDSelectRowAt:)
将会被调用:
overrIDe func tableVIEw(_ tableVIEw: UItableVIEw,dIDSelectRowAt indexPath: IndexPath) { let cell = tableVIEw.cellForRow(at: indexPath)! if wordisSpelledCorrect(word: (cell.textLabel?.text)!) { cell.backgroundcolor = UIcolor.green } else { cell.backgroundcolor = UIcolor.red } tableVIEw.reloadData() }
table VIEw Cell 将会被来自单词数组里面的单词初始化。如果单词拼写正确,cell 的背景色将变成绿色,否则将会变成红色。实际拼写检查的代码将会在 wordisSpelledCorrect
方法里面实现:
func wordisSpelledCorrect(word: String) -> Bool { let checker = UITextChecker() let range = NSMakeRange(0,word.characters.count) let wordRange = checker.rangeOfMisspelleDWord(in: word,range: range,startingAt: 0,wrap: false,language: "en") return wordRange.location == NSNotFound}
UITextChecker 类可以用来检测一个字符串是否拼写正确,检测范围是整个单词。rangeOfMisspelleDWordInString
方法用来检查拼写错误的范围。如果一个单词拼写正确的话,返回范围的 location
将会是 NSNotFound
,所以返回值是 true
,否则的话返回 false
。
编译并运行项目,选择列表的一行,如果拼写正确的话背景色会变成绿色,否则的话会变成红色。
你可以在 ioscreator 的 GitHub 仓库里面找到 IOS9SpellingCheckerTutorial 的源码。
总结本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 http://swift.gg。
以上是内存溢出为你收集整理的拼写检查教程全部内容,希望文章能够帮你解决拼写检查教程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)