當我觸摸標籤UIMenuController
與我的自定義項目列表一起出現時,效果很好。但是當UIMenuController
出現在標準UISearchBar
我也看到我所有的自定義項目。爲什麼?UIMenuController顯示錯誤的項目
當我觸摸標籤時,我只需要顯示標準UISearchBar和自定義項目的標準(複製,粘貼)項目。你能解釋我應該怎麼做?
UPDATE
我做了什麼(不好的解決方案):
如果我們有鍵盤,這是搜索欄,如果我們不這樣做,那就是標籤。
標誌,這意味着我將使用哪些物品清單
BOOL standardList;
註冊鍵盤出現/消失
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}
-(void)viewWillDisappear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
[super viewWillDisappear:animated];
}
-(void)keyboardWillShow:(id)sender
{
standardList = YES;
}
-(void)keyboardWillHide:(id)sender
{
standardList = NO;
}
並檢查標誌,在接下來的方法:
- (BOOL) canPerformAction:(SEL)selector withSender:(id) sender
{
if (selector == @selector(copy:))
{
return YES;
}
if (!standardList)
{
if ((selector == @selector(makeCall:)) || (selector == @selector(createNewContact:)))
{
return YES;
}
}
return NO;
}
那BUT:iPad的鍵盤有「隱藏鍵盤」按鈕,鍵盤可以隱藏不用[UISearchBar resingFirstResponder]
。
即使我添加下一行:
-(void)keyboardWillHide:(id)sender
{
standardList = NO;
[mySearchController setActive:NO];
}
這仍然是壞的解決方案 - 我不能隱藏鍵盤,而搜索和滾動的搜索結果。
有什麼建議嗎?