如何使自定义视图和它的NSButton可以在macOS swift中点击?

时间:2018-05-27 01:00:18

标签: swift macos nsview nsviewcontroller

我在NSButton NSView NSViewNSClickGestureRecognizeraction。现在,我可以从NSView NSClickGestureRecognizer获得NSButton。但问题是import Cocoa class ViewController: NSViewController { @IBAction func actionGesture(_ sender: NSClickGestureRecognizer) { print("Gesture Clicked!") } @IBAction func actionButton(_ sender: NSButton) { print("Button Clicked!") } } 无法点击。

我该如何解决这个问题?

代码:

#include <iostream>
#include <vector>
#include <cstdlib>
#include <algorithm>
using namespace std;
void insertionSort(vector<int> arr);
int main() {
    vector<int> vec;
    const int arrSize = 5;
    for(int i = 0; i < arrSize; i++) {
        vec.push_back(rand() % 10); // 3 6 7 5 3
    }
    for (auto i : vec) cout << i << endl; // 3 6 7 5 3
    insertionSort(vec);
    for (auto i : vec) cout << i << endl; // 3 6 7 5 3
}

void insertionSort(vector<int> arr) {
    for(int i = 0; i < arr.size() - 1; i++) {
        int j = i + 1;
        while(j > 0 && arr[j - 1] > arr[j]) {
            swap(arr[j - 1], arr[j]);
            j--;
        }
    }
    for (auto i : vec) cout << i << endl; // 3 3 5 6 7
}

截图:

enter image description here

项目链接: https://drive.google.com/open?id=1HmbKiqdF9z7SH131IyyfJ21j8KOgabzl

1 个答案:

答案 0 :(得分:1)

解决此问题的最简单方法是安排View结构,如下图所示。因此,连接到NSClickGestureRecognizer的View位于按钮后面。

enter image description here

希望这有帮助