【问题标题】:How do you set the text in an NSTextField?如何在 NSTextField 中设置文本?
【发布时间】:2011-02-19 22:59:19
【问题描述】:

我正在尝试在 NSTextField 中设置文本,但 -setStringValue:-setTitleWithMnemonic: 方法不起作用。有什么想法吗?

【问题讨论】:

  • 您的 NSTextField 是否被引用为 IBOutlet 并正确附加(如果您使用的是 Interface Builder...)

标签: cocoa macos nstextfield


【解决方案1】:

setStringValue: 是这样做的方法。您应该确保您的插座设置正确。 (在调试器中,确保您的文本字段变量不为空。)

【讨论】:

  • 在 Swift 中做到这一点的方法就是stringValue,然后你可以将它设置为你想要的任何字符串。
【解决方案2】:

只需这样做:

myLabel.stringValue = @"My Cool Text";

【讨论】:

    【解决方案3】:

    只需 myLabel.stringValue = "MY TEXT" 在这里工作,使用 Swift 和 Xcode 6。

    【讨论】:

    • 这对于最新的开发环境来说是一个很好的答案。顺便说一句,为什么这不是 NSTextField 文档的一部分?我先去了那里,并认为找到如何做到这一点真的很明显,但它不在那里......编辑:我找到了,它只是不在“主题”的明显位置,因为 stringValue 实际上是父类 NSControl 的属性,并出现在“Overview”中
    【解决方案4】:

    斯威夫特 4

    self.yourTextField.stringValue = "Your_Value"
    

    注意:从 self.yourTextField.stringValue 获取值将收到警告消息,即 为了避免这种警告,您可以像这样使用(建议的方式)

    DispatchQueue.main.async {
     your code ... 
    } 
    

    或者也可以参考this

    【讨论】:

      【解决方案5】:

      如果您尝试设置的值恰好是整数而不是字符串,则无需手动将整数值转换为字符串;你可以打电话:

      myLabel.integerValue = i;
      

      integerValue 属性在NSTextField 的父类NSControl 上定义。有关它支持的方法的完整列表,请参阅该链接文档页面。

      【讨论】:

        【解决方案6】:

        目标C:

        [label setStringValue: @"I am a label"];
        

        我在代码中用于显示应用程序版本的原始代码是:

            [lblVersion setStringValue:[NSString stringWithFormat:@"v%@", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]]];
        

        【讨论】:

          【解决方案7】:

          就这样做

          [textField setString:@"random"];
          

          【讨论】:

          • 错误。这就是您设置UITextField 的方式。问题是关于 Cocoa NSTextField 是一种不同的动物。
          猜你喜欢
          • 2012-07-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-03-25
          • 2021-07-22
          相关资源
          最近更新 更多