簡體   English   中英

如何在Swift MacOS中獲取按鈕的操作

[英]How to get action of button in Swift MacOS

我正在嘗試為游戲設置縮放,您可以單擊某個按鈕進行放大,而另一個則縮小(這將是UI的一部分)。

我在向代碼輸入按鈕時遇到問題。 我可以讀到沒有按下按鈕,但如果按下按鈕,我無法弄清楚如何閱讀。

通過API參考查看了我的想法,嘗試使用按鈕的“狀態”,但它總是返回0,即使按下按鈕。 這可能是因為更新功能的更新速度不如按鈕的狀態更改。

這是我的代碼:

class GameScene: SKScene {
    override func sceneDidLoad() {
        cam = SKCameraNode()
        cam.xScale = 1
        cam.yScale = 1
        self.camera = cam
        self.addChild(cam)
        cam.position = CGPoint(x: 0, y: 0)
        setUpUI()
    }

    func setUpUI(){
        let button1Rect = CGRect(x: 20, y: 80, width: 80, height: 40)
        let zoomIn = NSButton(frame: button1Rect) //place a button in the Rect
        zoomIn.setButtonType(NSMomentaryPushInButton)
        zoomIn.title = "Zoom In"
        zoomIn.alternateTitle = "Zoom In"
        zoomIn.acceptsTouchEvents = true
        view?.addSubview(zoomIn) //put button on screen
        let button2Rect = CGRect(x: 20, y: 30, width: 80, height: 40)
        let zoomOut = NSButton(frame: button2Rect) //place a button in the Rect
        zoomOut.setButtonType(NSMomentaryPushInButton)
        zoomOut.title = "Zoom Out"
        zoomOut.alternateTitle = "Zoom Out"
        zoomOut.acceptsTouchEvents = true
        view?.addSubview(zoomOut) //put button on screen
        if zoomIn.state == 1{ //this loop is never true no matter how many times I press the button
            print("zoom")
        }
    }
}

我確實刪除了一些涉及鼠標的代碼,因為它不相關。

答案來自TheValyreanGroup。

只需在setUpUI()函數外部定義按鈕(在GameScene之外或在其中工作,在GameScene之外更容易)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM