加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 04:33:56 所属栏目:百科 来源:网络整理
导读:我目前正在制作一个用 Swift编写的OS X应用程序.我想要做的是当用户在NSTextField中输入文本时,我想运行一个检查值并将其添加到Label的函数.我怎么能在swift中做到这一点? 解决方法 使ViewController符合协议NSTextDelegate. 将ViewController指定为TextFie
我目前正在制作一个用 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
         }
      }
   }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读