【发布时间】:2015-03-27 18:47:02
【问题描述】:
过去几天我一直在学习 Swift,我似乎遇到了困难。
我正在尝试创建一个ViewController 窗口,其中有一个按钮和一个NSViewText。当我按下按钮时,应用程序会向用户提示带有NSTextField 的工作表。按下回车后,NSTextField 字符串保存在变量中,工作表关闭,并执行终端命令。
现在,我在AppDelegate 中的执行命令方法创建了一个带有NSPipe 的管道:
let cmd = NSTask()
...
let pipe = NSPipe()
cmd.standardOutput = pipe
cmd.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output: String = NSString(data: data, encoding: NSUTF8StringEncoding)!
var consoleOutput = output
return output
consoleOutput 在执行方法之外,所以我尝试在ViewController 中显示它,如下所示:
编辑:更改了之前的代码,但仍然出现错误:
textView.string = myDelegate.consoleOutput
我希望终端输出实时显示在NSViewText(或NSTextField,或NSScrollView,NSClipView?不确定哪个)中。我不能做的是找到一种方法来操纵NSTextView 的内容,因为当我运行它时,我收到以下错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
任何帮助将不胜感激。
【问题讨论】: