[英]selectedTextRange return nil in UISearchbar iOS
我有一個UISearchBar
,我得到了UITextfield
,然后我要設置選定的Text范圍,但是它總是返回nil。 這是我的代碼:
UITextField *searchField = [self.searchBar valueForKey:@"_searchField"];
[searchField becomeFirstResponder]; // focus to this searchfield
然后我填寫文本:
self.searchBar.text = @"This is text";
並檢查是否填充了UITextField
文本。 盡管如此,所有有關UITextPosition
和UITextRange
的方法UITextRange
返回nil:
UITextRange *selectedRange = [searchField selectedTextRange]; //selectedRange = nil
UITextPosition *newPosition = [searchField positionFromPosition:selectedRange.start offset:addressToComplete.street.length]; //newPosition = nil
UITextRange *newRange = [searchField textRangeFromPosition:newPosition toPosition:newPosition]; //newRange = nil
我的代碼有錯嗎?
您是否嘗試過記錄UITextField *searchField
? 從外觀上看它是零。我認為您的代碼應該是..
(UITextField *)[self.searchBar valueForKey:@"_searchField"]
([嘗試您的代碼后] OooOoKayyy ..它起作用..哈哈哈..)順便說一下,這就是我在searchBar中獲取UITextField的方式。
for (id object in [[[self.searchBar subviews] objectAtIndex:0] subviews])
{
if ([object isKindOfClass:[UITextField class]])
{
UITextField *searchField = (UITextField *)object;
break;
}
}
首先,我嘗試了您所擁有的:
UITextField *searchField = (UITextField *)[searchBar valueForKey:@"_searchField"];
searchBar.text = @"This is text";
// and logging your searchField.text here.. returns nil/empty..
我試圖像這樣重新排列它...
searchBar.text = @"This is text";
UITextField *searchField = (UITextField *)[searchBar valueForKey:@"_searchField"];
NSLog(@"searchFields.text :%@", searchField.text);
我再次在-(void)viewDidLoad
下嘗試了您的代碼,但是不好,是的,它總是為nil,正如您所說的..現在看起來像這樣。
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
searchBar.text = @"This is text"; // not important
UITextField *searchField = [searchBar valueForKey:@"_searchField"];
[searchField becomeFirstResponder];
UITextRange *selectedRange = [searchField selectedTextRange]; //selectedRange = not nil anymore
NSLog(@"searchField.text :%@ -> selectedRange :%@\n\n" , searchField.text, selectedRange);
}
//i've also tried it inside uibutton's event and i worked .. >.<
我以編程方式選擇了TextRange(出於示例目的),可能與xibs自動布局有關(或奇怪(我沒有經驗)),但是確實有,請嘗試.. :)
我希望我能幫助您。
祝您編程愉快!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.