gpt4 book ai didi

objective-c - 获取AppKit类的私有(private)方法的名称

转载 作者:行者123 更新时间:2023-12-03 17:35:09 26 4
gpt4 key购买 nike

我已经为此苦苦挣扎了一段时间。

有很多次我想改变控件中的一些小东西,但我不得不重新绘制整个东西只是为了调整它。就像 NSPathControl 一样,我只是想更改路径控件的背景,最终我创建了一个全新的控件,只是为了这个小调整......

Apple 使用私有(private)方法,如下所示:

- (void)_drawContextMenuHighlightForIndexes:(NSIndexSet *)rowIndexes clipRect:(NSRect)rect;

我在 Stackoverflow-Post 中找到了这个。

我应该如何知道这些?我不认为它们应该公开,但这更容易。这些人是从哪里知道这些的?有没有引用资料?我不需要知道任何源代码,我只需要知道私有(private)方法的名称。

所以我的问题是,如何获取 AppKit 类的私有(private)方法的名称?

谢谢

最佳答案

私有(private)类方法名可以通过 Obj-C runtime functions 获取。要获取类的方法列表,您可以执行以下操作:

unsigned int methodCount;
Method *methods = class_copyMethodList(theClass, &methodCount);
for (int i = 0; i < methodCount; i++) {
Method method = methods[i];
NSString *methodName = NSStringFromSelector(method_getName(method));
// collect name in an array or print it.
}
free(methods);

还有一个方便的终端工具可以为您执行此操作,名为 class-dump .

关于objective-c - 获取AppKit类的私有(private)方法的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13388976/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com