Как я заставляю NSView переместиться в переднюю сторону всего NSViews

У меня есть супер представление, которое имеет 2 подпредставления. Эти подпредставления перекрываются.

Каждый раз, когда я выбираю представление из меню, соответствующее представление должно стать действия дескриптора и вид спереди. т.е. это должна быть передняя сторона большая часть подпредставления.

acceptsFirstResponder уходит в отставку все хорошо работают. Но мышь вниз события отправляются в самое верхнее представление sub, которое было установлено.

С уважением, Dhana

32
задан Muhammad Yawar Ali 19 May 2016 в 17:54
поделиться

2 ответа

Вот еще один способ сделать это, более ясный и лаконичный:

[viewToBeMadeForemost removeFromSuperview];
[self addSubview:viewToBeMadeForemost positioned:NSWindowAbove relativeTo:nil];

Согласно документации по этому методу, когда вы используете relativeTo: nil , представление добавляется выше (или ниже, с помощью NSWindowBelow ) всех своих братьев и сестер.

38
ответ дан 27 November 2019 в 20:42
поделиться

Приведенный ниже код должен работать нормально ..

    NSMutableArray *subvies = [NSMutableArray arrayWithArray:[self subviews]];//Get all subviews..

    [viewToBeMadeForemost retain]; //Retain the view to be made top view..

    [subvies removeObject:viewToBeMadeForemost];//remove it from array

    [subvies addObject:viewToBeMadeForemost];//add as last item

    [self setSubviews:subvies];//set the new array..
1
ответ дан 27 November 2019 в 20:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: