Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift cocoa应用程序OS X中的禁用按钮_Swift_Cocoa_Osx Yosemite - Fatal编程技术网

Swift cocoa应用程序OS X中的禁用按钮

Swift cocoa应用程序OS X中的禁用按钮,swift,cocoa,osx-yosemite,Swift,Cocoa,Osx Yosemite,我希望在表单上的某些字段经过验证后启用“提交”按钮。目前预览功能工作得很好,预览按钮提供了我需要的验证。正在处理Xcode 7和swift 2。如果有人能给我指出正确的方向,我将不胜感激。以下是我目前拥有的代码: import Cocoa @NSApplicationMain class AppDelegate: NSObject, NSApplicationDelegate { var projectFlag = false var descriptionFlag = fa

我希望在表单上的某些字段经过验证后启用“提交”按钮。目前预览功能工作得很好,预览按钮提供了我需要的验证。正在处理Xcode 7和swift 2。如果有人能给我指出正确的方向,我将不胜感激。以下是我目前拥有的代码:

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    var projectFlag = false
    var descriptionFlag = false
    var releaseFlag = false

    // Fields
    @IBOutlet weak var projectNumberTextField:NSTextField!
    @IBOutlet weak var projectDescriptionTextField:NSTextField!
    @IBOutlet weak var releaseFolderNameTextField:NSTextField!
    @IBOutlet weak var passwordTextField:NSTextField!

    // Labels for preview
    @IBOutlet weak var label1: NSTextField!
    @IBOutlet weak var label2: NSTextField!
    @IBOutlet weak var label3: NSTextField!
    @IBOutlet weak var label4: NSTextField!
    @IBOutlet weak var label5: NSTextField!

    // Quit Button :: Quits the application
    @IBAction func quitButton(sender: AnyObject) {
        NSApplication.sharedApplication().terminate(self)
    }

    // Preview button behavior
    @IBAction func previewButton(sender: AnyObject) {

        // Project Number :: 
        let project = projectNumberTextField.stringValue
        label1.stringValue = "\(project)"
        if (label1.stringValue == "00-0000") {
            label1.stringValue = "Project Number is not valid"
            label1.textColor = NSColor.redColor()
            projectFlag = false
        } else {
        label1.textColor = NSColor.blackColor()
        projectFlag = true
        }

        // Project Description :: Name, 2016
        let description = projectDescriptionTextField.stringValue
        label2.stringValue = "\(description)"
        if (label2.stringValue == "Name, 2016") {
            label2.stringValue = "Enter a valid project description"
            label2.textColor = NSColor.redColor()
            descriptionFlag = false
        } else {
            label2.textColor = NSColor.blackColor()
            descriptionFlag = true
        }

        // Folder Release Name :: RELEASE_NAME
        let release = releaseFolderNameTextField.stringValue
        label3.stringValue = "\(release)"
        if (label3.stringValue == "RELEASE_NAME") {
            label3.stringValue = "Enter a valid folder release name"
            label3.textColor = NSColor.redColor()
            releaseFlag = false
        } else {
            label3.textColor = NSColor.blackColor()
            releaseFlag = true
        }


        // Password :: If needed
        let password = passwordTextField.stringValue
        label4.stringValue = "\(password)"

        // Preview :: Code format for txt file
        let preview = "\(project)|"+"\(description)|"+"\(release)|"+"\(password)/"
        label5.stringValue = "\(preview)"
        }

    // Submit button behavior
    @IBAction func submitButton(Sender: AnyObject) {


    }

    func applicationDidFinishLaunching(aNotification: NSNotification) {
        // Insert code here to initialize your application
    }


    func applicationWillTerminate(aNotification: NSNotification) {

        // Insert code here to tear down your application
    }
}

我整理了代码块上的格式,在粘贴时总是仔细检查所有代码是否已格式化-为此,必须在左边距和文本开头之间有四个空格-“”。使用NSTextField textDidChange(或类似)委托方法调用验证函数,在其中设置按钮(您需要一个插座)以启用所有内容都是有效的。