Objective c Dropbox iPad登录模式视图控制器出现问题

Objective c Dropbox iPad登录模式视图控制器出现问题,objective-c,cocoa-touch,sdk,dropbox,Objective C,Cocoa Touch,Sdk,Dropbox,我对Dropbox iPad登录模式视图控制器有一个问题:有时你不能在密码文本字段中写入;您可以选择它并显示键盘,但您不能写入。一个解决办法是按login,它表示您尚未输入密码,您按ok,再次选择它,现在就可以工作了。这对用户来说不是很好。现在的问题是:是否有人找到了修复Dropbox SDK的方法,或者是我唯一遇到的问题?我在iPad应用程序中使用Dropbox SDK。我已经查看了他们的DBLoginController.h/.m代码。密码控件是一个简单的UITextField,添加到UIT

我对Dropbox iPad登录模式视图控制器有一个问题:有时你不能在密码文本字段中写入;您可以选择它并显示键盘,但您不能写入。一个解决办法是按login,它表示您尚未输入密码,您按ok,再次选择它,现在就可以工作了。这对用户来说不是很好。现在的问题是:是否有人找到了修复Dropbox SDK的方法,或者是我唯一遇到的问题?

我在iPad应用程序中使用Dropbox SDK。我已经查看了他们的
DBLoginController.h/.m
代码。密码控件是一个简单的
UITextField
,添加到
UITableViewCell
中。只有少数几个地方可以即时更改输入到字段中的文本。一个是
-(BOOL)textField:shouldChangeCharactersRange:replacementString
。查看DBLoginController中的代码,我发现:

- (BOOL)textField:(UITextField *)textField 
                   shouldChangeCharactersInRange:(NSRange)range
                   replacementString:(NSString *)string {
   [self performSelector:@selector(updateActionButton) withObject:nil afterDelay:0];
   return YES;
}
这很好,因为它总是返回YES

下一种可能性是文本字段实际上没有获得焦点。最好的测试方法是在
shouldchangeCharactersRange
中放置一个NSLog()。在“密码”字段中键入字符时,应随时点击该NSLog()。如果您正在键入而没有看到任何NSLog()输出,则表示密码字段没有焦点。下一步将是找出什么是焦点以及为什么

DBLoginController是一个相当简单的类。追踪到底发生了什么应该不难


最后一个想法是:如果您在
UITextField
上定义了任何类别,它可能会影响某些文本字段的工作方式。

如果不了解您是如何设置的,我们不可能回答这个问题。Dropbox登录没有设置,我只做'DBLoginController*controller=[[DBLoginController new]autorelease];controller.delegate=self;[controller presentFromController:self];'问题是这种故障只是偶尔出现。调试起来很困难。但我会努力的。:)当我升级到Xcode 4.1时,这个问题消失了。我认为这是调试器或SDK的问题