質問

iPhone SDK 3.0を使用して、入力中に表示される(オプションの)補完オプションを使用したテキスト入力、つまりフリーフォーマット入力を許可したいと思います。そのため、オプションを表示するためにUISearchBar(テキスト変更イベントがある)とUISearchDisplayControllerを使用しています。

問題は、[検索]ではなく[完了]ボタンを[完了]にしたいのですが、それを設定する方法が見つからないことです。明らかに何か不足していると感じるか、SDK APIのInterface Builderに設定するプロパティがあります。

(ストア内の)他のアプリを見て、私が望む結果(自由形式の入力、完了、完了ボタン)を達成しているので、私が見逃している別の方法があるかもしれません。ポインタを事前に感謝します。

役に立ちましたか?

解決

+1 walの回答についてですが、安全のために、今後のリリースでビュー階層の可能な変更に適切に対応するには、次のコードの使用を検討してください。

NSArray *subviews = [<searchBar> subviews] ;
for(id subview in subviews) {
    if([subview isKindOfClass:[UITextField class]]) {
        [(UITextField*)subview setReturnKeyType:UIReturnKeyDone];
    }
}

他のヒント

これを正確に実装する必要があり、どこにも素晴らしい答えを見つけることができなかったので、私はいくつかの洞察を提供すると思いました。デバッガーをステップ実行し、UISearchBarを掘り下げるのは明らかです。 uisearchbarサブビュー内でUITextViewを見つけましたが、その時点で、UITextViewのハンドルを取得したら、そのUITextViewにreturnkeytypeを設定できるはずです。

擬似コード- UISearchBarObject.SubViewAtIndexOfUITextField.ReturnKeyType = UIReturnKeyType.Done

このコードをviewDidLoadに挿入します。

- (void)viewDidLoad {
...

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

...
}
奇数/documentation/UIKit/Reference/UITextInputTraits_Protocol/Reference/UITextInputTraits.html#//apple_ref/occ/intfp/UITextInputTraits/returnKeyType "rel =" nofollow noreferrer "> returnKeyType 。とにかく試してみます。

そうでない場合、UISearchBarが使用するオブジェクトの1つにこのオプションがある可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top