gpt4 book ai didi

swift - NSTextView如何让文本居中

转载 作者:行者123 更新时间:2023-11-28 08:04:46 27 4
gpt4 key购买 nike

class ViewController: NSViewController {
@IBOutlet var editView: NSTextView!
override func viewDidLoad() {
super.viewDidLoad()

// Do any additional setup after loading the view.
let
paragraphStyle = NSParagraphStyle.default().mutableCopy() as! NSMutableParagraphStyle
paragraphStyle.lineHeightMultiple = 1.6
editView.defaultParagraphStyle = paragraphStyle;
//editView.typingAttributes[NSFontAttributeName] = paragraphStyle;
editView.typingAttributes[NSParagraphStyleAttributeName] = paragraphStyle;

}

override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
}

这是我所有的代码,在 main.storyboard 中,只有一个 NSTextView 控件。

但是我的文字画出来了,都是从行底开始的,这不是我想要的。我希望能够将文本保持在行的垂直位置。我还没有找到这方面的案例,请帮我解答一下。谢谢

enter image description here

最佳答案

您可以使用 NSAttributedStringKey.baselineOffset(Swift 3 中的 NSBaselineOffsetAttributeName)来调整行内文本的垂直位置。您当然需要编写一些代码来计算您的行高并找到要使用的正确基线,但此代码示例应该为您提供基本思路:

class ViewController: NSViewController {
@IBOutlet var editView: NSTextView!
override func viewDidLoad() {
super.viewDidLoad()

// Do any additional setup after loading the view.
let paragraphStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle
paragraphStyle.lineHeightMultiple = 1.6
editView.defaultParagraphStyle = paragraphStyle
editView.typingAttributes[.paragraphStyle] = paragraphStyle
editView.typingAttributes[.baselineOffset] = 15
}

override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
}

关于swift - NSTextView如何让文本居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45491818/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com