Я пытаюсь создать новый монтажный стол, используя функцию уровня класса NSPasteboard с уникальным именем Python через Python через PyObjC, однако я получаю сообщение об ошибке «AttributeError: Нет атрибута с уникальным именем».
Это мое первое использование PyObjC. Я прочитал PyObjC intro , но я очень легко могу назвать его неверным.
Этот код выдает ошибку:
from AppKit import *
pb = NSPasteboard.withUniqueName()
Основываясь на обсуждении селекторов во вступлении, я также попытался:
from AppKit import *
pb = NSPasteboard.withUniqueName_()
но это также дало AttributeError.
Этот код (выдержка из http://www.macdrifter.com/2011/12/python-and-the-mac-clipboard.html работает:
from AppKit import *
pb = NSPasteboard.generalPasteboard()
Из документов NSPasteboard Я вижу, что withUniqueName - это функция класса, тогда как general - переменная класса, поэтому моя попытка вызвать withUniqueName таким же образом может быть ошибочной.
Пытаясь определить, неправильно ли я просто вызывал withUniqueName или PyObjC его не реализовал, я сделал dir(NSPasteboard)
. withUniqueName не было в списке, но не было ни «general», ни «generalPasteboard». Даже просматривая установленные модули, я не мог найти ни «общего», ни «общего компьютера», и я знаю, что последний работает, так что это расстроило мою попытку обнаружения. Также я не понимаю, почему код Python должен вызывать переменную как generalPasteboard, когда имя в документации Apple просто общее.
Я использую PyObjC 5.2, установленный из PyPI с Python 3.7.0 на Sierra 10.12.6.
Поддерживает ли PyObjC 5.2 NSPasteboard с уникальным именем? Если так, то как правильно это назвать? Если нет, то как мне проверить модуль / класс, чтобы узнать это?