2

使用 iPhone SDK 3.0,我希望允许在键入时出现带有(可选)完成选项的文本输入,即也允许自由格式输入。因此,我使用 UISearchBar(具有文本更改事件)和 UISearchDisplayController 来呈现选项。

问题是我希望 DONE 按钮说 DONE 而不是 SEARCH,但是我找不到设置它的方法。显然我觉得我遗漏了一些东西,或者 SDK API 的 Interface Builder 会有一些属性需要设置。

我已经看到其他应用程序(在商店中)已经达到了我想要的结果(自由格式输入、完成、完成按钮)所以也许我缺少另一种方法。在此先感谢您的任何指点。

4

4 回答 4

5

+1对于wal的回答,但为了安全起见,并在进一步的版本中正确应对视图层次结构中可能发生的变化,请考虑使用以下代码:

NSArray *subviews = [<searchBar> subviews] ;
for(id subview in subviews) {
    if([subview isKindOfClass:[UITextField class]]) {
        [(UITextField*)subview setReturnKeyType:UIReturnKeyDone];
    }
}
于 2010-08-29T22:09:12.283 回答
2

只需要完全实现这一点,并且在任何地方都找不到任何好的答案......所以我想我会提供一些见解。单步调试器并深入研究 UISearchBar 非常明显。我刚刚在 uisearchbar 子视图中找到了 UITextView ,然后你应该能够在处理它后在该 UITextView 上设置 returnkeytype 。

伪代码- UISearchBarObject.SubViewAtIndexOfUITextField.ReturnKeyType = UIReturnKeyType.Done

于 2010-03-26T04:19:36.027 回答
1

将此代码放在 viewDidLoad 中。

- (void)viewDidLoad {
...

NSArray *subviews = [self.searchDisplayController.searchBar subviews] ;
UITextField *searchField = [subviews objectAtIndex:([subviews count]-2)];
[searchField setReturnKeyType:UIReturnKeyDone];

...
}
于 2010-03-29T15:33:09.227 回答
0

奇怪的是, UISearchBar 应该支持 UITextInputTraits 接口,如 UITextField 和 UITextView 做的(文档中没有说它支持),因此应该有returnKeyType。反正我会试试的。

如果没有,可能 UISearchBar 使用的对象之一具有此选项。

于 2009-10-22T18:41:32.977 回答