В Swift Cocoa есть событие, которое срабатывает, когда NSTextField получает фокус для редактирования. Я пришел из С#, в котором есть события GotFocus() и LostFocus().
Для NSTextfield я смог найти только те функции, которые срабатывают после того, как вы начинаете печатать. Не сразу, как только фокус будет получен.
override func controlTextDidBeginEditing(obj: NSNotification) {
}
func control(control: NSControl, textShouldBeginEditing fieldEditor: NSText) -> Bool {
}
Мне это нужно, потому что как только кто-то начнет редактировать, я хочу показать больше деталей. У меня более простое отображаемое имя и полное имя для редактирования.
Спасибо,
becomeFirstResponder
иresignFirstResponder
, вам также стоит ознакомиться с работой окнаfieldEditor
. Этот объект (подклассNSTextView
) находится там, где вы редактируете на самом деле, и об этом стоит знать, потому что, когда вы думаете, что вашNSTextField
имеет фокус, это не так, а редактор поля. Это поможет вам понять, почему выNSTextField
не отвечаете первым, даже когда вы с удовольствием печатаете в нем текст. 02.03.2015