Обновите несфокусированный NSTextView - PullRequest
1 голос
/ 19 апреля 2011

Это своего рода продолжение моего предыдущего вопроса .

У меня есть NSTextView, который обычно обновляется ( ну, на самом деле есть некоторые ошибки, из-за которых он будет рисоваться очень медленно, пока вы не наведете на него курсор мыши. Странно. ), если вы находитесь приложение. но проблема здесь в том, что я использую

    [myWindow setLevel:NSFloatingWindowLevel];

, чтобы установить его поверх остальных окон. Это небольшая утилита, которую вы можете скрыть и показать с помощью NSStatusItem.

Бум: Уведомление. Приложение получает строку, а затем я использую [myTextView setString:somestring];, чтобы поместить ее в NSTextView.

Если окно имеет фокус, оно, очевидно, работает хорошо. Но если пользователь в настоящее время находится в другом приложении ... Есть идеи о том, как я мог бы заставить его работать, если фокус в настоящее время находится где-то еще? У меня также есть некоторые NSTextFields, и они отлично обновляются независимо от фокуса, но NSTextView будет пустым, пока пользователь не нажмет на окно. На самом деле, NSStatusItem показывает окно с

    [lyricWindow makeKeyAndOrderFront:nil];

который перерисовывает NSTextView либо. Если приложение скрыто, пользователь находится в другом приложении, происходит обновление, и затем пользователь фокусирует приложение, NSTextView будет действительно пустым, пока не будет нажата кнопка в окне. Есть ли способ заставить окно поверить, что оно щелкнуло и имеет фокус? Есть ли способ принудительно обновить или заставить NSTextView не требовать его рисования?

Спасибо!

Кевин

1 Ответ

1 голос
/ 02 мая 2011

Я исправил проблему! Чтобы найти решение, потребовалось немало усилий, поскольку в Google, по-видимому, нет ничего уместного, но если у вас возникла похожая проблема, то, как я ее исправил, отключил возможности Rich Text в NSTextView в Interface Builder.

Я предполагаю, что это связано с проблемами с производительностью или чем-то вроде способа оформления текста. Теперь отлично работает!

...