Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如果在swift中按下NSButton,则创建简单的动作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在快速学习.我想知道如果按下一个按钮,如何以编程方式调用一个函数….我试过这个,但该函数在程序启动时直接执行,而不是当我按下按钮时……你能不能帮助我解决这个问题..谢谢 在这个测试应用程序的完整ViewController. swift下面 // // ViewController.swift // hjkhjkjh // // Created by iznogoud on 14/05/
我正在快速学习.我想知道如果按下一个按钮,如何以编程方式调用一个函数….我试过这个,但该函数在程序启动时直接执行,而不是当我按下按钮时……你能不能帮助我解决这个问题..谢谢
在这个测试应用程序的完整ViewController. swift下面
//
//  ViewController.swift
//  hjkhjkjh
//
//  Created by iznogoud on 14/05/16.
//  Copyright © 2016 iznogoud. All rights reserved.
//

import Cocoa


class ViewController: NSViewController {

    func printSomething() {
    print("Hello")
}

override func viewDidLoad() {
    super.viewDidLoad()

    let myButtonRect = CGRect(x: 10,y: 10,width: 100,height: 10)
    let myButton =  NSButton(frame: myButtonRect)
    view.addSubview(myButton)
    myButton.target = self
    myButton.action = SELEctor(printSomething())


    // Do any additional setup after loading the view.
}

override var representedObject: AnyObject? {
    didSet {
    // update the view,if already loaded.
    }
}


}
@H_674_19@
问题在于添加选择器的方式 @H_75_16@myButton.action = SELEctor(printSomething())

添加选择器的语法有点古怪,你给它一个带有函数名称的字符串,所以在你的情况下你应该写:

@H_75_16@myButton.action = SELEctor("printSomething")

哪个应该在你的控制台中用Hello来奖励你.

可能因为语法导致了人们的问题,它在Swift 2.2中被更改了,所以现在你写道:

@H_75_16@myButton.action = #SELEctor(ViewController.printSomething)

代替.这意味着编译器可以帮助您尽早发现这些错误,这是我认为向前迈出的一大步.您可以在Swift 2.2 here的发行说明中阅读更多相关信息

所以…这是你的整个例子:

import Cocoa

class ViewController: NSViewController {

    func printSomething() {
        print("Hello")
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        let myButtonRect = CGRect(x: 10,height: 10)
        let myButton =  NSButton(frame: myButtonRect)
        view.addSubview(myButton)

        myButton.target = self
        myButton.action = #SELEctor(ViewController.printSomething)
    }

    override var representedObject: AnyObject? {
        didSet {
        // update the view,if already loaded.
        }
    }
}

希望对你有所帮助.

大佬总结

以上是大佬教程为你收集整理的如果在swift中按下NSButton,则创建简单的动作全部内容,希望文章能够帮你解决如果在swift中按下NSButton,则创建简单的动作所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。