2011-07-12 35 views
2

我有一個Dropbox的iPad登錄模式視圖控制器的問題:有時你不能寫在密碼的文本框;你可以選擇它並出現鍵盤,但是你不能寫。解決方法是按登錄,它說你沒有輸入密碼,你按ok,再次選擇它,現在可以工作。這對用戶來說不是很好。所以現在的問題是:是否有人找到修復Dropbox SDK的方法,或者是我唯一擁有的問題?問題與Dropbox的iPad登錄模式視圖控制器

+0

沒有看到你如何設置,我們不可能回答這個問題。 – sosborn

+0

Dropbox登錄沒有設置,我只是'DBLoginController * controller = [[DBLoginController new] autorelease]; controller.delegate = self; [controller presentFromController:self];' – edo42

回答

1

我使用帶有iPad應用程序的Dropbox SDK。我已閱讀他們的DBLoginController.h/.m代碼。密碼控制是一個簡單的UITextField,它被添加到UITableViewCell。只有少數幾個地方可以即時更改輸入該字段的文本。一個是-(BOOL)textField:shouldChangeCharactersInRange:replacementString。看看DBLoginController中的代碼,我看到:

- (BOOL)textField:(UITextField *)textField 
        shouldChangeCharactersInRange:(NSRange)range 
        replacementString:(NSString *)string { 
    [self performSelector:@selector(updateActionButton) withObject:nil afterDelay:0]; 
    return YES; 
}

這很好,因爲它總是返回YES。

下一個可能性是textField實際上並沒有得到關注。測試這個最好的方法是將一個NSLog()放入shouldChangeCharactersInRange。每次在密碼字段中輸入一個字符時,都應該擊中NSLog()。如果您正在鍵入並且沒有看到任何NSLog()輸出,則表示密碼字段沒有焦點。下一步將要弄清楚有哪些重點和原因。

DBLoginController是一個相當簡單的類。追蹤發生的事情不應該很難。

最後一個想法:如果在UITextField上定義了任何類別,則可能會影響某些textField的工作方式。

+0

問題是,這種故障有時只出現。調試非常困難。但我會嘗試。 :) – edo42

+0

當我升級到Xcode 4.1時,問題消失了我認爲這是調試器或SDK的問題 – edo42

+0

我會接受你的答案,因爲它寫得很好。 – edo42