2012-06-14 45 views
2

我寫了一個調整cydia,但它似乎並沒有工作。我使用Theos創建了模板。我從iosod工具頭轉儲,發現Cydia的Tweak有什麼問題?

`$` - (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 \ 

一切正常編譯和安裝,但在運行時,當我點擊搜索欄並開始鍵入時,什麼也沒有發生。有人知道我做錯了什麼嗎?

謝謝!

回答

1

記住,因爲這是一個委託方法將不會被調用,除非委託類實現的方法。你是否在處理這個事件的應用程序上測試了這個?

嘗試添加一些記錄到一個文件,所以你可以看到你的代碼是否被稱爲與否。

+0

我添加了一個鉤子用於init方法,並且一個運作良好。所以你是對的,委託方法從未被調用過。所以如果isod對我說謊,我怎麼能找到真正的電話? – user1455332

+0

如果您創建一個實現該委託調用的基本應用程序,您應該能夠看到您的掛鉤是否正常工作。由於你的鉤子正在爲init調用工作,作爲鉤住委託函數的替代方法,你可以看一下私有頭文件,看看是否有任何私人調用來處理該文本字段上的事件,如果你鉤住那些然後你不需要依靠使用實現委託調用的控制器的應用程序。 – lyptt

+0

你知道我在哪裏可以得到這些私人標題嗎?人們有時會參考/ var/SDK/S/L/Frameworks文件夾,但似乎並沒有包含所有這些文件夾。 – user1455332