Я пытаюсь создать генератор для AutoModerator в OS X, но когда я пытаюсь изменить значение метки на ввод текстового поля, он не отображает введенные данные, а отображает другие информация.

Мой код ниже

 // Text Fields

@IBOutlet weak var date: NSTextField!

@IBOutlet weak var timezone: NSTextField!

@IBOutlet weak var sticky: NSTextField!

@IBOutlet weak var titleTextField: NSTextField!

@IBOutlet weak var textFeild: NSTextField!

@IBOutlet weak var textFeild2: NSTextField!
// Labels

@IBOutlet weak var timeDateTZone: NSTextField!

@IBOutlet weak var stickyTrueFalse: NSTextField!

@IBOutlet weak var titleResult: NSTextField!

@IBOutlet weak var textResult: NSTextField!

@IBOutlet weak var textResult2: NSTextField!

// Button

@IBAction func generateButton(sender: AnyObject) {

    print ("Generate Pressed")

    timeDateTZone.stringValue = ("first: \"\(date) \(timezone)\"")

    stickyTrueFalse.stringValue = ("sticky: \(sticky)")

    titleResult.stringValue = ("title: \"\(titleTextField)\"")

    textResult.stringValue = ("\(textFeild)")

    textResult2.stringValue = ("\(textFeild2)")

Когда я нажимаю кнопку, вместо этого отображается

Изображение 1

Было бы здорово, если бы кто-нибудь мог помочь.

Предыстория приложения: Генератор для AutoModerator на Reddit.

Isaac

Ответов: 1

Ответы (1)

Прямая печать экземпляров NSTextField (\ (...)) даст результат, который вы показываете на скриншоте, и нам нужно получить доступ к фактическому тексту в текстовом поле , а не информацию о самом экземпляре.

NSTextField не имеет свойства .text (например, UILabel), но имеет .stringValueкоторые вы можете использовать (унаследовано от NSControl). Я вижу выше, что вы do используете это свойство, когда устанавливаете значение текстовых полей timeDateTZone, stickyTrueFalse и т. Д., Но вы необходимо также использовать это, когда вы извлекаете строковое значение из текстовых полей дата, часовой пояс и т. д.

Попробуйте добавить суффикс .stringValue также к экземплярам NSTextField, из которых вы хотите читать:

@IBAction func generateButton(sender: AnyObject) {

    print ("Generate Pressed")

    timeDateTZone.stringValue = ("first: \"\(date.stringValue) \(timezone.stringValue)\"")

    stickyTrueFalse.stringValue = ("sticky: \(sticky.stringValue)")

    titleResult.stringValue = ("title: \"\(titleTextField.stringValue)\"")

    textResult.stringValue = ("\(textFeild.stringValue)")

    textResult2.stringValue = ("\(textFeild2.stringValue)")
}

Объявление - stringValue

var stringValue: Строка

Возвращает значение ячейки получателя как объект NSString.

см.

и обратите внимание, что вы можете запросить возврат другого объекта, кроме NSString, используя другие свойства NSControl, например, .intValue (var intValue: Int32) или .objectValue (@ NSCopying var objectValue: AnyObject?).

2022 WebDevInsider