0

У меня возникла очень странная проблема, которую я не могу решить самостоятельно. У меня есть несколько элементов пользовательского интерфейса, встроенных в NSWindow, работающих как NSBorderlessWindowMask. Имеются 2 NSSlider, 3 NSButton, a NSComboBox и NSColorWell.NSControl не работает на разных Mac

Приложение построено для цели 10.7 и имеет песочницу.

На моей машине разработки каждый элемент работает по назначению. NSComboBox имеет рабочие DataSource и Delegate. NSColorWell тоже работает. Когда я нажимаю на NSComboBox, я могу ввести в него текст. И NSColorWell открывает выбор цвета.

В тот момент, когда я передаю свое приложение моему бета-тестеру, NSComboBox и NSColorWell изменить нельзя. Это означает, что я могу добавлять элементы в DataSource из NSComboBox (через импорт), и они могут быть выбраны в раскрывающемся меню, но я не могу щелкнуть по NSComboBoxCell и написать текст. Также, если я нажимаю NSColorWell, цветной выбор не открывается.

У меня нет никакой подсказки, что могло бы вызвать подобное поведение. Каждый элемент подключен правильно, и я запускаю тот же двоичный код, что и мой бета-тестер. Эти системы запускают Mountain Lion в своей последней версии. Я попытался создать NSButton для бета-тестера, который проходит следующие методы на NSComboBox:

[self.nameCB reloadData]; 
[self.nameCB setEnabled:YES]; 
[self.nameCB setEditable:YES]; 
[self.nameCB setNeedsDisplay:YES]; 
[self.nameCB setFrame:self.nameCB.frame]; 
[self.nameCB becomeFirstResponder]; 
[self.nameCB setSelectable:YES]; 

Никто не помог. Я не знаю, как «отлаживать» это поведение. Есть ли у вас какие-либо предложения?


Edit: я был в состоянии сломать его немного вниз. Когда я удаляю линию

[self.window setStyleMask:NSBorderlessWindowMask]; 

Это работает. Но я хочу получить хороший взгляд от удаления заголовка, так что это только помогает немного.

+0

такой же выпуск .. любая помощь? – Saranjith

+0

Разве мое принятое решение не работает для вас? –

+0

мой проект в MRR, .. это не работает – Saranjith

ответ

0

Как я уже редактировал в своем вопросе, я узнал, что эта проблема вызвана стилем NSBorderlessWindowMask на моем основном NSWindow. Я не нашел другого пути, кроме подкласса NSWindow.

Я использовал this example в качестве руководства. Он также работает, если вы просто извлеките класс CustomWindow из проекта и добавьте его в свой проект. Затем просто установите класс вашего окна в IB на CustomWindow

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