我是Ruby / MacRuby的新手。我按照MacRuby网站上的秒表示例,我使用该示例尝试制作一个简单的应用程序,它需要6个小文本字段,然后在另一个较大的文本字段中显示输入。我发现了一对(虽然含糊不清且记录非常严重)的例子
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帖子,但我不太了解它。
答案 0 :(得分:0)
假设IBOutlets已连接且所有这些出口都是NSTextFields,请尝试:
class AppDelegate
attr_accessor :window
attr_accessor :subjectField, :messageField, :emailTo, :emailFrom, :smtpServerAddress, :smtpPort, :password
def setMessageField(sender)
@messageField.stringValue += "SMTP Server Address: #{@smtpServerAddress.stringValue}\n"
@messageField.stringValue += "SMTP Port: #{@smtpPort.stringValue}\n"
@messageField.stringValue += "User Email: #{@emailFrom.stringValue}\n"
@messageField.stringValue += "User Password: #{@password.stringValue}\n"
@messageField.stringValue += "To Email: #{@emailTo.stringValue}\n"
@messageField.stringValue += "Subject: #{@subjectField.stringValue}\n"
end
end
答案 1 :(得分:0)
弄清楚发生了什么。在setMessageField
方法中,+=
运算符无效。所以我不得不将其改为以下内容。我更改了方法名称btw。
attr_accessor :window
attr_accessor :subjectField, :messageField, :emailTo, :emailFrom, :smtpServerAddress, :smtpPort, :password
def setText(sender)
@messageField.stringValue = "SMTP Server Address: #{@smtpServerAddress.stringValue}\n"
@messageField.stringValue = "#{@messageField.stringValue}SMTP Port: #{@smtpPort.stringValue}\n"
@messageField.stringValue = "#{@messageField.stringValue}User Email: #{@emailFrom.stringValue}\n"
@messageField.stringValue = "#{@messageField.stringValue}User Password: #{@password.stringValue}\n"
@messageField.stringValue = "#{@messageField.stringValue}To Email: #{@emailTo.stringValue}"
@messageField.stringValue = "#{@messageField.stringValue}Subject: #{@subjectField.stringValue}\n"
end
现在就像魅力一样。