【问题标题】:What is wrong with this Tweak for Cydia?Cydia 的这个调整有什么问题?
【发布时间】:2012-06-14 05:16:47
【问题描述】:

我为cydia 写了一个调整,但它似乎不起作用。我使用Theos 创建了模板。我从 iosod 工具 获得了一个标头转储,并找到了

`$` - (void)searchBarTextDidBeginEditing:(id)searchBarText;

SBSearchController 类中。这是我在 Tweak 中的代码。

%hook SBSearchController

- (void)searchBarTextDidBeginEditing:(id)searchBarText { %orig;

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Tweak"
    message:@"Testing is running!"
    delegate:nil
    cancelButtonTitle:@"Ok"
    otherButtonTitles:nil];
[alert show];
[alert release];`

}

%end

我的 Makefile 看起来像这样

include theos/makefiles/common.mk  

Testing_FRAMEWORKS = UIKit  

TWEAK_NAME = Testing  

Testing_FILES = Tweak.xm    

include $(THEOS_MAKE_PATH)/tweak.mk \

一切都正确编译和安装,但在运行时,当我点击搜索栏并开始输入时,什么也没有发生。有人知道我做错了什么吗?

谢谢!

【问题讨论】:

    标签: iphone objective-c ios cydia tweak


    【解决方案1】:

    请记住,由于这是一个委托方法,除非委托类实现了该方法,否则它不会被调用。您是否在处理此事件的应用程序上对此进行了测试?

    尝试将一些日志记录添加到文件中,这样您就可以查看您的代码是否被调用。

    【讨论】:

    • 我为 init 方法添加了一个钩子,这个钩子效果很好。所以你是对的,委托方法从未被调用过。那么如果isod在骗我,我怎么才能找到真正的电话呢?
    • 如果您创建一个实现该委托调用的基本应用程序,您应该能够查看您的挂钩是否正常工作。由于您的挂钩适用于 init 调用,因此作为挂钩委托函数的替代方法,您可以查看私有标头并查看是否有任何私有调用处理该文本字段上的事件,如果您挂钩那些,那么您不需要依赖使用实现委托调用的控制器的应用程序。
    • 你知道我在哪里可以获得这些私有标头吗?人们有时会参考 /var/SDK/S/L/Frameworks 文件夹,但它似乎没有全部。
    • 查看rpetrich's iPhone Headers 获取一组可以与theos 一起使用的私有头文件
    • 很有趣的是,这么多的方法从来没有被调用过。似乎无缘无故地增加了很多开销。无论如何,谢谢你的回答!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 2019-10-31
    • 2012-05-29
    • 1970-01-01
    • 2012-05-26
    • 2021-08-20
    相关资源
    最近更新 更多