没有更新版本的swift的textkit

时间:2018-02-07 18:43:52

标签: swift textkit

我需要像textkit swift这样的东西在我的应用程序中实现文本编辑器。问题是所有textkit代码样本和信息都是swift的旧版本,swift 4不支持它,它有100多个错误。任何人都知道为什么最近没有关于textkit的新信息。我想知道textkit是否过时了?如果是的话那么请告诉我现在它有什么样的能力,如textkit,如果没有,并且它没有过时,请给我一些关于它的新信息。感谢任何帮助。

要了解更多关于textkit的小代码,

let scrollView:UIScrollView = UIScrollView.init(frame: CGRectZero)
let textStorage:NSTextStorage = NSTextStorage()
let layoutManger: NSLayoutManager = NSLayoutManager()
let fontArribuates = [NSFontAttributeName: UIFont.systemFontOfSize(16)]

var titleTextView: UITextView = UITextView(frame: CGRectZero)
var contentTextView: UITextView = UITextView(frame: CGRectZero)

或者像这样

// MARK: Life Cycle
override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    self.title = "Post"
    self.edgesForExtendedLayout = UIRectEdge.None
    // error is : 'None' is unavailable: use [] to construct an empty option set`
}

错误就像'CGRectZero' is unavailable in Swift'systemFontOfSize' has been renamed to 'systemFont(ofSize:)''None' is unavailable: use [] to construct an empty option set

2 个答案:

答案 0 :(得分:2)

TextKit没有过时。

只需执行建议的更改或使用Xcode的代码迁移功能自动执行更改(编辑>转换>转换为当前的Swift语法)。

而不是CGRectZero使用CGRect.zero。而不是systemFontOfSize(...)使用systemFont(ofSize:)[]而不是UIRectEdge.None

答案 1 :(得分:1)

我不认为TextKit已被替换,只是在较新的iOS / Swift版本中已经更新了一些语法。

例如,您的第一部分适合我在操场上进行以下更改:

let scrollView:UIScrollView = UIScrollView.init(frame: CGRect.zero)
let textStorage:NSTextStorage = NSTextStorage()
let layoutManger: NSLayoutManager = NSLayoutManager()
let fontArribuates = [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 16)]

var titleTextView: UITextView = UITextView(frame: CGRect.zero)
var contentTextView: UITextView = UITextView(frame: CGRect.zero)

对于您的第二个示例,错误消息建议......

self.edgesForExtendedLayout = UIRectEdge([])

......但这是一个快速猜测。