gpt4 book ai didi

xcode - 左侧的 NSTextField 填充

转载 作者:搜寻专家 更新时间:2023-10-31 08:20:12 24 4
gpt4 key购买 nike

如何使用 swift 在文本字段单元格中的文本左侧添加填充?以前的答案仅适用于 UITextField 或在 Objective C 中。需要明确的是,这是针对 NSTextField 的。

最佳答案

Here是某人在 Objective C 中制作自定义 NSTextFieldCell 的示例。

移植到 Swift 看起来像这样:

import Cocoa

class PaddedTextFieldCell: NSTextFieldCell {

@IBInspectable var leftPadding: CGFloat = 10.0

override func drawingRect(forBounds rect: NSRect) -> NSRect {
let rectInset = NSMakeRect(rect.origin.x + leftPadding, rect.origin.y, rect.size.width - leftPadding, rect.size.height)
return super.drawingRect(forBounds: rectInset)
}
}

我已将填充添加为 @IBInspectable 属性。这样您就可以在 Interface Builder 中随意设置它。

与界面生成器一起使用

要使用新的 PaddedTextFieldCell,请将常规 Text Field 拖到 xib 文件中

Normal Text Field Cell

然后将内部 TextFieldCell 的类更改为 PaddedTextFieldCell

Change TextFieldCell to PaddedTextFieldCell

成功!

The final result

从代码中使用

要从代码中使用 PaddedTextFieldCell,您可以做这样的事情(感谢@Sentry.co 的帮助):

class ViewController: NSViewController {

@IBOutlet weak var textField: NSTextField! {
didSet {
let paddedTextField = PaddedTextFieldCell()
paddedTextField.leftPadding = 40
textField.cell = paddedTextField
textField.isBordered = true
textField.isEditable = true
}
}

....
}

希望对你有帮助。

关于xcode - 左侧的 NSTextField 填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38137824/

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