例如,如果我需要Gtk + include路径.如何pkg-config gtk+-2.0 --cflags在Xcode项目设置中使用?
当你编写一个使用CoreData的静态库时,包含一个普通的.xdatamodeld文件会进入项目,因为你不能只将它的编译版本(.momd)链接到你的二进制文件中,所以最好NSManagedObjectModel在代码中创建整个这个:
NSAttributeDescription *dateAttribute = NSAttributeDescription.new;
dateAttribute.name = @"timestamp";
dateAttribute.attributeType = NSDoubleAttributeType;
dateAttribute.optional = NO;
dateAttribute.indexed = YES;
NSAttributeDescription *payloadAttribute = NSAttributeDescription.new;
payloadAttribute.name = @"payload";
payloadAttribute.attributeType = NSBinaryDataAttributeType;
payloadAttribute.optional = NO;
payloadAttribute.indexed = NO;
NSEntityDescription *entry = NSEntityDescription.new;
entry.name = entry.managedObjectClassName = NSStringFromClass(MyCustomEntry.class);
entry.properties = @[dateAttribute, payloadAttribute];
NSManagedObjectModel *mom = NSManagedObjectModel.new;
mom.entities = @[entry];
Run Code Online (Sandbox Code Playgroud)
一切都很完美......
但!等等,如果我有多个实体NSManagedObjectModel并且它们是相关的(多对数,反向等等),那么在世界上我将如何在代码中连接它们,就像上面的例子一样,没有那个漂亮的Xcode编辑器,你通过几次鼠标点击建立关系?
例
想象一下,我们有一个MyCustomElement类,它与上面代码中的MyCustomEntry几乎相同.现在,这是他们的界面,如果我使用Xcode生成实体它们将如何出现:
@interface MyCustomEntry : NSManagedObject
@property (nonatomic, retain) NSNumber *timestamp;
@property (nonatomic, retain) NSData *payload;
@property (nonatomic, retain) MyCustomElement *element; …Run Code Online (Sandbox Code Playgroud) cocoa core-data objective-c nsmanagedobject nsentitydescription
LD_PRELOAD为整个进程挂钩了一些函数,但是我需要通过名称只为一个动态链接库挂钩一个特定的函数.
如果不支持Accessibility API,我如何获得窗口的标题,位置和大小?辅助功能检查员根本看不到它.说,这是在X11.app(X11->应用程序 - >终端)xterm窗口.
致力于所有喜欢低级别Window Server(CoreGraphicsPrivate.h等),Mac上的X11,SIMBL等疯狂的东西:)
Mac上有一个简单的X11仿真应用程序(如xterm,xeyes等),只有一个窗口.在运行时,X11以某种方式创建了一个原生的Quartz窗口来表示这个模拟的应用程序,这个窗口可以通过Quartz Window Services访问,这样我就可以得到它的CSWindowID,标题,位置,大小和所有者的PID(X11.app的PID).但是它不支持Accessibility API,所以没有办法控制它(除了,可能是来自同一进程的Core Graphichs私有函数).
现在,这是任务:
我需要在这样的窗口上托管一个额外的NSView(或者只是画一些东西).我的意思是一个原生的Quartz窗口,它出现在X11模拟某些应用程序的结果中.我知道,要在Mac上操作Windows,我必须在同一个过程中,即X11.app.
我写了一个SIMBL插件,它插入了X11.app进程.
在那里我可以调用[NSApp windows],但是我总是得到2个NSWindows,这与实际应用程序的窗口没有任何共同之处.它们甚至在屏幕上都不可见.
然而,当我调用NSWindowList()时,我得到了我需要的任何东西(X11窗口的窗口ID)甚至更多(来自其他应用程序的窗口ID).
当我为X11模拟的窗口获得CSWindowID时,我调用[NSApp windowWithWindowNumber:](Cocoa)和HIWindowFromCGWindowID()(Carbon),但它们都返回nil!从同样的过程!
顺便说一句,当我进入Safari进程和其他人时,所有这些操作都能很好地工作......
所以,问题是:
X11是如何创建这样的窗口的,这些窗口无法通过同一个进程访问?
我怎样才能获得指向X11窗口(NSWindow*,CGContextRef,或者至少任何东西......)的指针并托管我的图形(我甚至不谈NSView)?
非常感谢提前!
需要在Mac上安全地存储一些有价值的数据,并使用我的应用程序访问它.如何?
cocoa ×5
macos ×3
security ×2
x11 ×2
core-data ×1
credentials ×1
elf ×1
gtk ×1
hook ×1
include ×1
keychain ×1
linux ×1
macos-carbon ×1
objective-c ×1
pkg-config ×1
redirect ×1
simbl ×1
xcode ×1