【发布时间】:2019-10-15 20:07:21
【问题描述】:
我只写了几个星期的代码,所以请原谅我毫无疑问的笨拙代码。
我有一个NSTextField,需要根据NSPopupButton 中的选择进行更新
这些是我的分店:
@IBOutlet weak var inputText: NSTextField!
@IBOutlet weak var outputText: NSTextField!
@IBOutlet weak var inputBrowseButton: NSButton!
@IBOutlet weak var outputBrowseButton: NSButton!
@IBOutlet weak var codecSelector: NSPopUpButton!
这些是我的变量:
// derive default path and filename from @IBAction of inputBrowseButton
var defaultUrl: URL!
// derived from default of inputBrowse unless outputBrowse is used
var outputUrl: URL!
// change output path from @IBAction of outputBrowseButton
var outputDirectory: URL!
// change path extension from @IBAction of codecSelector NSPopupButton
var codecChosen: String = ""
// dictionary of arguments to form script for ffmpeg
var ffmpegCodecArg: String = ""
这是我将所有这些结合在一起的方法:
// construct output path for use in ffmpegArguments dictionary and display in outputText NSTextField
func updateOutputText(defaultUrl: URL?, outputDirectory: URL?) -> String {
if defaultUrl != nil && outputDirectory != nil {
let outputFile = defaultUrl!.deletingPathExtension()
let outputFilename = outputFile.lastPathComponent
outputUrl = outputDirectory!.appendingPathComponent(outputFilename)
outputText.stringValue = outputUrl.path + "\(codecChosen)"
} else if defaultUrl == nil && outputDirectory != nil {
outputText.stringValue = outputDirectory!.path
} else {
outputUrl = defaultUrl!.deletingPathExtension()
outputText.stringValue = outputUrl.path + "\(codecChosen)"
}
return outputText.stringValue
}
现在这个函数不工作,因为我还没有弄清楚如何调用它。但这是另一个问题,不是我在这里要问的。
以前我在跑步
outputUrl = defaultUrl!.deletingPathExtension()
outputText.stringValue = outputUrl.path + "\(codecChosen)"
作为我的 inputBrowseButton @IBAction 方法的一部分,我正在运行
let outputFile = defaultUrl!.deletingPathExtension()
let outputFilename = outputFile.lastPathComponent
outputUrl = outputDirectory!.appendingPathComponent(outputFilename)
outputText.stringValue = outputUrl.path + "\(codecChosen)"
作为我的 outputBrowseButton @IBAction 方法的一部分。
效果很好,除了更新outputText.stringValue 时codecChosen 变量在我的@IBAction 中为codecSelector NSPopupButton 方法分配了一个新值。
我怀疑问题是我的outputText NSTextField 没有设置为在codecSelector NSPopupButton 更改时更新。我需要做什么才能做到这一点?
【问题讨论】: