2

私はまだ自分のアプリに取り組んでおり、UISearchBar について質問があります。ここに画像の説明を入力 これが私の質問です:UISearchBarに表示されるこの「選択|すべて選択|貼り付け」ツールチップを取り除くにはどうすればよいですか? 誰でもこれで私を助けることができますか? 前もって感謝します。

4

4 に答える 4

1

その時だけ非表示にしたい場合UISeacrhBar

-(void)setGestures
{
    for (id obj in searchBar.subviews)
    {
        if ([obj isKindOfClass:[UITextField class]])
        {
            UITextField *textF = (UITextField *)obj;
            textF.gestureRecognizers = nil;
            UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(makeSearchBarFirstResponder:)];
            textF.gestureRecognizers = @[tapGesture];
        }
    }
}

-(void)makeSearchBarFirstResponder:(UIGestureRecognizer *)sender
{
    [sender.view becomeFirstResponder];
}

そしてCall[self setGestures]メソッド

-(void)viewDidLoad
{
   [self setGestures];
}
-(BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
   [self setGestures];
   return YES;
}
于 2013-08-08T10:37:09.817 に答える
1

iOS 7 以降では、UISearchBar をサブクラス化し、このメソッドを次のようにオーバーライドできます。

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    [[NSOperationQueue mainQueue] addOperationWithBlock:^{
        [[UIMenuController sharedMenuController] setMenuVisible:NO animated:NO];
    }];
    return [super canPerformAction:action withSender:sender];
}

これにより、メニュー コントローラーがすぐに非表示になり、UISearchBar サブビューを解析する必要がなくなります。

于 2014-09-05T06:38:10.597 に答える
0

ここでは、メニュー コントローラーが実行するすべての特定のメソッドに対してNOを返す必要があります。

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{
    if (action == @selector(defineSelection:))
    {
        return NO;
    }
    else if (action == @selector(translateSelection:))
    {
        return NO; 
    }
    else if (action == @selector(copy:))
    {
        return NO;
    }

    return [super canPerformAction:action withSender:sender];
}

お役に立てれば 。

于 2013-08-08T09:39:07.850 に答える