相关疑难解决方法(0)

Mac OS X上的剪贴板监控| Java的

我有麻烦的在Mac OS X系统剪贴板,我试图做的获取数据是倾听到系统剪贴板,并打印剪贴板中的内容每个新[基于文本的]信息被放入它的时间.

问题:下面的代码在Windows 7和openSUSE Linux机器上工作得非常好,但是当我尝试在Mac OS X上运行相同的代码时,程序无法打印剪贴板的新内容,直到关注应用程序.[在点击停靠栏上的应用程序图标之前,没有任何内容打印...]

我的源代码:

import java.awt.Toolkit;  
import java.awt.datatransfer.*;  
import java.io.IOException;  

public class ClipboardListener extends Thread implements ClipboardOwner {

    Clipboard systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard();  

    public void run(){  
        Transferable selection = systemClipboard.getContents(this);  
        gainOwnership(selection);  
    }  

    public void gainOwnership(Transferable t){ 
        try {this.sleep(100);} 
        catch (InterruptedException e) {e.printStackTrace();}
        systemClipboard.setContents(t, this);  
    }  

    public void lostOwnership(Clipboard clipboard, Transferable contents) {
        try {System.out.println((String) clipboard.getData(DataFlavor.stringFlavor));} 
        catch (UnsupportedFlavorException e) {} 
        catch (IOException e) {}
        gainOwnership(contents);  
    }  
}
Run Code Online (Sandbox Code Playgroud)
public class myApp {

    public static void main(String[] args){
        ClipboardListener …
Run Code Online (Sandbox Code Playgroud)

java macos clipboard multithreading awt

9
推荐指数
1
解决办法
2512
查看次数

NSTimer不会调用私有func作为选择器

我正在研究一个要点:PasteboardWatcher.swift,我调用了这样的NSTimer对象:

func startPolling () {
        // setup and start of timer
        timer = NSTimer.scheduledTimerWithTimeInterval(2, target: self, selector: Selector("checkForChangesInPasteboard"), userInfo: nil, repeats: true)
}
Run Code Online (Sandbox Code Playgroud)

checkForChangesInPasteboard函数的定义是:

func checkForChangesInPasteboard() {
        // definition continues..
}
Run Code Online (Sandbox Code Playgroud)

我不想将函数暴露checkForChangesInPasteboard给其他类,因此我想将其标记为私有,但出于某种原因,当我这样做时,它会抛出异常:

-[PasteboardWatcher.PasteboardWatcher checkForChangesInPasteboard]: unrecognized selector sent to instance
Run Code Online (Sandbox Code Playgroud)

如果我没有将其标记为私有,则可以完美地运行.

有什么方法可以将此方法保持为私有,将其隐藏在其他类中?

access-control swift

4
推荐指数
1
解决办法
449
查看次数

标签 统计

access-control ×1

awt ×1

clipboard ×1

java ×1

macos ×1

multithreading ×1

swift ×1