1

我对 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

显然这里有问题,但谁能给我一个正确方向的提示?我在这里看到了这个帖子,但我不太了解它。

4

2 回答 2

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
于 2013-03-14T19:11:10.903 回答
0

弄清楚发生了什么。在该setMessageField方法中,+=运算符无效。所以我不得不将其更改为以下内容。顺便说一句,我更改了方法名称。

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

现在就像一个魅力。

于 2013-03-15T04:01:18.337 回答