В настоящее время я делаю приложение OS X, написанное в Swift. То, что я хочу сделать, - это когда пользователь вводит текст в NSTextField
, я хочу запустить функцию, которая проверяет значение и добавляет его в ярлык. Как мне это сделать быстро?Как протестировать NSTextField - Swift OS X
3
A
ответ
5
- Соответствует
ViewController
протоколуNSTextDelegate
. - Назначить
ViewController
в качестве Делегата дляTextField
. Внедрение
controlTextDidChange
Метод.import Cocoa @NSApplicationMain class AppDelegate: NSObject, NSApplicationDelegate, NSTextFieldDelegate { @IBOutlet weak var window: NSWindow! @IBOutlet weak var textField: NSTextField! @IBOutlet weak var label: NSTextField! func applicationDidFinishLaunching(aNotification: NSNotification) { textField.delegate = self } override func controlTextDidChange(notification: NSNotification) { let object = notification.object as! NSTextField self.label.stringValue = object.stringValue } func applicationWillTerminate(aNotification: NSNotification) { // Insert code here to tear down your application } }
в ViewController:
import Cocoa
class ViewController: NSViewController, NSTextDelegate {
@IBOutlet weak var label: NSTextField!
@IBOutlet weak var label2: NSTextField!
@IBOutlet weak var textField: NSTextField!
@IBOutlet weak var textField2: NSTextField!
override func viewDidLoad() {
super.viewDidLoad()
}
override func controlTextDidChange(notification: NSNotification) {
if let txtFld = notification.object as? NSTextField {
switch txtFld.tag {
case 201:
self.label.stringValue = txtFld.stringValue
case 202:
self.label2.stringValue = txtFld.stringValue
default:
break
}
}
}
}
-3
Вы можете использовать NSNotificationCenter для наблюдения за своим текстовым полем.
@IBOutlet weak var textField: UITextField!
В viewDidLoad()
let noti = NSNotificationCenter.defaultCenter()
noti.addObserver(self, selector: "textDidChange:", name: UITextFieldTextDidChangeNotification, object: textField)
А затем определить функцию, например:
func textDidChange(noti: NSNotification) {
print(textField.text)
}
теперь каждый трапецеидальных ввода в текстовое поле, он будет напечатан в textDidChange().
Надежда эта помощь
+0
Этот код для IOS не OS X. Я получаю сообщение об ошибке в 'UITextFieldTextDidChangeNotification', я пытался заменить его' 'UITextFieldTextDidChangeNotification но это все еще не работает. Ошибка: 'unresolved identifier' – iProgram
Смежные вопросы
- 1. OS X nstextfield проверка
- 2. Как повернуть NSTextField на OS X?
- 3. Добавление и удаление NSTextField программно в SWIFT OS X
- 4. Как использовать .isempty в OS X swift
- 5. Меню настроек в OS X с Swift
- 6. NSVisualEffectBlendingMode OS X Swift
- 7. Как использовать DidEndEditing в текстовом поле на OS X (swift)
- 8. Как включить проверку орфографии в NSTextField в Mac OS X?
- 9. Twitter OAuth Swift OS X
- 10. Swift OS X игровой центр
- 11. Как изменить текст вставки (курсор) для NStextField? для os x swift 2
- 12. Как сохранить содержимое NSTextField в macOS Swift?
- 13. Как протестировать IE при разработке с OS X?
- 14. Как добавить вкладку в swift os x
- 15. Firebreath mac os x создать NSTextField в окне плагина
- 16. Swift Изменение текста NSTextField
- 17. Диалог как Xcode в OS X
- 18. OS X Swift WebView отключить прокрутку
- 19. Простое отображение второго окна: OS X & Swift
- 20. Slide Down Pop Up OS X Swift
- 21. Xcode Swift OS X popover behavior
- 22. Приложение OS X по коду swift
- 23. Предупреждение с паролем ввода в Swift OS X
- 24. Реализация/регистрация службы OS X с Swift
- 25. Swift/OS X: Transfom не доступен
- 26. Ошибка Настройка PerfectlySoft Swift на OS X
- 27. Ансамбли, связанные с OS X Swift App
- 28. Swift для компиляции OS X для Linux?
- 29. OS X приложение в Swift без XIB
- 30. NSTextField GotFocus Event Cocoa Swift
Спасибо за код. Попробуем позже. Как бы я обнаружил метку, которая была отредактирована (у меня может быть 2 в одной точке). – iProgram
Используйте теги, которые позволяют идентифицировать определенные элементы управления. Значения тегов, установленные в Interface Builder – madmir
Код должен наследовать от NSTextFieldDelegate, а не NSTextDelegate. Вам также необходимо настроить делегаты текстовых полей на себя. – iProgram