SwiftUI文本字段表示不增加字体大小

SwiftUI文本字段表示不增加字体大小,swift,macos,swiftui,Swift,Macos,Swiftui,我在我的Mac SwiftUI应用程序中使用了一个可表示的视图控制器。由于SwiftUI(FirstResponder,占位符颜色)中的默认文本字段非常有限,因此我使用的是可表示的 它工作得很好,但是我不能增加TextField的字体大小,这对于SwiftUI的默认TextField组件是有效的 这是我的NSViewController: class TextFieldController: NSViewController { @Binding var text: String va

我在我的Mac SwiftUI应用程序中使用了一个可表示的视图控制器。由于SwiftUI(FirstResponder,占位符颜色)中的默认文本字段非常有限,因此我使用的是可表示的

它工作得很好,但是我不能增加TextField的字体大小,这对于SwiftUI的默认TextField组件是有效的

这是我的NSViewController:

class TextFieldController: NSViewController {

  @Binding var text: String
  var isFirstResponder : Bool = true

    init(text: Binding<String>, isFirstResponder : Bool = true) {
    self._text = text
    super.init(nibName: nil, bundle: nil)
  }

  required init?(coder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
  }

  override func loadView() {

    let textField = NSTextField()
    textField.delegate = self

    textField.font = NSFont(name: "SF Compact Text", size: 19.5) // Points

    self.view = textField
  }

  override func viewDidAppear() {
    self.view.window?.makeFirstResponder(self.view)
  }
}


extension TextFieldController: NSTextFieldDelegate {

  func controlTextDidChange(_ obj: Notification) {
    if let textField = obj.object as? NSTextField {
      self.text = textField.stringValue
    }
  }
}

在VIEWDID上指定字体似乎对我有用

class TextFieldController: NSViewController {
    @Binding var text: String
    let textField = NSTextField()
    var isFirstResponder : Bool = true

    init(text: Binding<String>, isFirstResponder : Bool = true) {
        self._text = text
        super.init(nibName: nil, bundle: nil)
    }

    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override func loadView() {
        textField.delegate = self
        textField.stringValue = text
        self.view = textField
    }

    override func viewDidAppear() {
        self.view.window?.makeFirstResponder(self.view)
        textField.font = NSFont(name: "SF Compact Text", size: 19.5)
    }
}
class TextFieldController:NSViewController{
@绑定变量文本:字符串
设textField=NSTextField()
var isFirstResponder:Bool=true
init(文本:Binding,isFirstResponder:Bool=true){
self.\u text=文本
super.init(nibName:nil,bundle:nil)
}
必需初始化?(编码器:NSCoder){
fatalError(“初始化(编码者:)尚未实现”)
}
重写func loadView(){
textField.delegate=self
textField.stringValue=文本
self.view=textField
}
覆盖函数ViewDidDisplay(){
self.view.window?.makeFirstResponder(self.view)
textField.font=NSFont(名称:“SF压缩文本”,大小:19.5)
}
}

谢谢,您是否在外部声明了textField,或者如何在ViewDidDisplay()内部访问它?您应该在外部声明它。我尝试过声明它,是否必须在loadView()中设置self.view=self.textField?这对我不起作用。问题是,我使用它作为视图,但在这里,我需要将视图向下转换到NSTextField,再次感谢您!工作得很好。我犯了个大错,谢谢你!!
textField.font = NSFont(name: "SF Compact Text", size: 19.5)
class TextFieldController: NSViewController {
    @Binding var text: String
    let textField = NSTextField()
    var isFirstResponder : Bool = true

    init(text: Binding<String>, isFirstResponder : Bool = true) {
        self._text = text
        super.init(nibName: nil, bundle: nil)
    }

    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override func loadView() {
        textField.delegate = self
        textField.stringValue = text
        self.view = textField
    }

    override func viewDidAppear() {
        self.view.window?.makeFirstResponder(self.view)
        textField.font = NSFont(name: "SF Compact Text", size: 19.5)
    }
}