У меня есть супер представление, которое имеет 2 подпредставления. Эти подпредставления перекрываются.
Каждый раз, когда я выбираю представление из меню, соответствующее представление должно стать действия дескриптора и вид спереди. т.е. это должна быть передняя сторона большая часть подпредставления.
acceptsFirstResponder
уходит в отставку все хорошо работают. Но мышь вниз события отправляются в самое верхнее представление sub, которое было установлено.
С уважением, Dhana
Вот еще один способ сделать это, более ясный и лаконичный:
[viewToBeMadeForemost removeFromSuperview];
[self addSubview:viewToBeMadeForemost positioned:NSWindowAbove relativeTo:nil];
Согласно документации по этому методу, когда вы используете relativeTo: nil
, представление добавляется выше (или ниже, с помощью NSWindowBelow
) всех своих братьев и сестер.
Приведенный ниже код должен работать нормально ..
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..