Я довольно новичок в Ruby/MacRuby. Я выполнил пример секундомера на веб-сайте MacRuby, и я использовал этот пример, чтобы попытаться создать простую программу, которая занимает 6 небольших текстовых полей, а затем отображает ввод в другом более крупном текстовом поле. Я нашел пару (хотя туманно и очень ужасно документирована) примерыMacRuby Доступ к/Обновление текстовых полей
class AppDelegate
attr_accessor :window
attr_accessor :subjectField, :messageField, :emailTo, :emailFrom, :smtpServerAddress, :smtpPort, :password
attr_writer :subjectField, :messageField, :emailTo, :emailFrom, :smtpServerAddress, :smtpPort, :password
def setMessageField(sender)
@messageField += "SMTP Server Address: #{@smtpServerAddress.to_s}\n")
@messageField += "SMTP Port: #{@smtpPort.to_s}\n")
@messageField += "User Email: #{@emailFrom.to_s}\n")
@messageField += "User Password: #{@password.to_s}\n")
@messageField += "To Email: #{@emailTo.to_s}\n")
@messageField += "Subject: #{@subjectField.to_s}\n")
end
end
Очевидно, что что-то здесь не так, но может кто-нибудь дать мне подсказку в правильном направлении? Я видел здесь this, но я не очень хорошо это понял.
Я получаю сообщение об ошибке «setMessageField»: undefined method «stringValue» для nil: NilClass (NoMethodError) ' – pattmorter
Убедитесь, что все переменные экземпляра, используемые в setMessageField: где-то назначаются - скорее всего, в Interface Builder. См. Раздел «Подключить вывод текстового поля» в примере секундомера. – jtomschroeder
Я последовал за этим и связал все, но он все еще не работает. – pattmorter