当前位置 : 主页 > 手机开发 > 其它 >

macos – 如何检查NSTextField – Swift OS X.

来源:互联网 收集:自由互联 发布时间:2021-06-11
我目前正在制作一个用 Swift编写的OS X应用程序.我想要做的是当用户在NSTextField中输入文本时,我想运行一个检查值并将其添加到Label的函数.我怎么能在swift中做到这一点? 使ViewControlle
我目前正在制作一个用 Swift编写的OS X应用程序.我想要做的是当用户在NSTextField中输入文本时,我想运行一个检查值并将其添加到Label的函数.我怎么能在swift中做到这一点? >使ViewController符合协议NSTextDelegate.
>将ViewController指定为TextField的委托.
>实现controlTextDidChange方法.

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate, NSTextFieldDelegate {

    @IBOutlet weak var window: NSWindow!
    @IBOutlet weak var textField: NSTextField!
    @IBOutlet weak var label: NSTextField!


    func applicationDidFinishLaunching(aNotification: NSNotification)
    {
        textField.delegate = self
    }

    override func controlTextDidChange(notification: NSNotification)
    {
        let object = notification.object as! NSTextField
        self.label.stringValue = object.stringValue
    }

    func applicationWillTerminate(aNotification: NSNotification) {
        // Insert code here to tear down your application
    }
}

在ViewController中:

import Cocoa

class ViewController: NSViewController, NSTextDelegate {

   @IBOutlet weak var label: NSTextField!
   @IBOutlet weak var label2: NSTextField!
   @IBOutlet weak var textField: NSTextField!
   @IBOutlet weak var textField2: NSTextField!

   override func viewDidLoad() {
      super.viewDidLoad()
   }

   override func controlTextDidChange(notification: NSNotification) {
      if let txtFld = notification.object as? NSTextField {
         switch txtFld.tag {
         case 201:
            self.label.stringValue = txtFld.stringValue
         case 202:
            self.label2.stringValue = txtFld.stringValue
         default:
            break
         }
      }
   }
}
网友评论