【问题标题】:textkit for newer version of swift is not available较新版本的 swift 的 textkit 不可用
【发布时间】:2018-02-07 18:43:52
【问题描述】:

我需要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

【问题讨论】:

  • 你能用一个给出错误的小代码示例更新你的问题吗?
  • @PhillipMills 我发布了一些示例。非常感谢您的关心和帮助

标签: swift textkit


【解决方案1】:

TextKit 没有过时。

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

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

【讨论】:

  • 谢谢,这似乎很有帮助,但在 (Edit>Convert>To Current Swift Syntax) 我有一个错误 After using 'Minimize Inference' you need to follow the manual steps detailed in the migration guide to complete the conversion.
【解决方案2】:

我不认为 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([])

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

【讨论】:

    猜你喜欢
    • 2019-10-31
    • 2015-08-02
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 1970-01-01
    相关资源
    最近更新 更多