2013-06-30 3 views
0

Я пытаюсь выполнить то, что, как я полагаю, является довольно простой задачей в Cocoa (Mac OSX 10.8), которая заключается в том, чтобы вставить строку из буфера обмена в NSTextField.NSTextField isFirstResponder

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

Попытка 1:

При выполнении команды «вставить», попроси каждое текстовое поле «вы выбраны?», От IOS разработчика, я бы сделал это что-то вроде [aTextField isFirstResponder], но этот метод Безразлично» t существует на NSTextField, и я не могу найти эквивалент.

Попытка 2:

Когда какой-либо из 3 NSTextFields выбраны, хранить, что TF как «активный» поле, и когда пользователь выбирает пасту, вставьте строку в там. Проблема здесь заключается в том, что если я могу установить контроллер в качестве делегата в текстовом поле, а также осуществлять:

-(void)controlTextDidBeginEditing:(NSNotification *)obj {} 

Это только вызывается, когда пользователь редактирует текст, а не когда они просто выбрать его (как это обычно случается когда пользователь хочет вставить верхнюю часть), поэтому в этом методе я все равно не знаю, какое из текстовых полей было выбрано в данный момент, и, следовательно, где вставить текст.

Кто-нибудь знает, как к этой простой задаче нужно подойти для Mac OSX? Все, что я хочу сделать, это позволить пользователю вставить некоторый текст из буфера обмена в текстовое поле !?

ответ

0

Вы можете найти первого ответчика из окна, используя -[NSWindow firstResponder]. Затем вы можете отправить ему действие paste:. Вот как работает стандартный элемент Paste в меню Edit.

+0

Я думал, что это будет что-то простое, спасибо! – Mike

Смежные вопросы