Я новичок в разработке IOS, и я хочу отправить несколько событий нажатия и отпускания клавиш программной клавиатуры из фреймворка в приложение, используя версию Swift 2.3 или 3.0.
Спасибо за любую помощь
Я новичок в разработке IOS, и я хочу отправить несколько событий нажатия и отпускания клавиш программной клавиатуры из фреймворка в приложение, используя версию Swift 2.3 или 3.0.
Спасибо за любую помощь
Если я правильно понял ваш вопрос, вы спрашиваете, как определить, когда вы набираете клавиши. Существуют методы делегата textField, которые сделают эту работу за вас.
`// UITextField Delegates
func textFieldDidBeginEditing(_ textField: UITextField) {
}
func textFieldDidEndEditing(_ textField: UITextField) {
}
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
return true;
}
func textFieldShouldClear(_ textField: UITextField) -> Bool {
return true;
}
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
return true;
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
return true;
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder();
return true;
}`
Обновление:
Невозможно получить события касания непосредственно с виртуальной клавиатуры. Тем не менее, вы можете использовать UITextField, который вы помещаете за пределы экрана, чтобы он не был виден, и вызывать beFirstResponder, чтобы отобразить клавиатуру. Затем вы можете реализовать метод делегата textView:shouldChangeTextInRange: для получения уведомлений при каждом нажатии клавиши.
Более чистой возможностью было бы написать собственный UIControl, реализующий протокол UIKeyInput. Вам нужно будет только предоставить реализации для insertText:, deleteBackward и hasText (для этого вы всегда можете просто вернуть YES). Чтобы сделать клавиатуру видимой, вам снова пришлось бы вызывать метод beFirstResponder для вашего пользовательского элемента управления.
Общим для обоих этих методов является то, что вы будете уведомлены только тогда, когда клавиша будет отпущена (чтобы был введен текст), а не когда фактически начинается касание. Как я уже сказал, невозможно напрямую получить событие tochesBegan. Если вам это нужно, вам, вероятно, придется реализовать собственную экранную клавиатуру.
Просто добавьте цель для редактирования события уведомления следующим образом:
// Obj-C
[textObject addTarget:self action:@selector(editingChanged:) forControlEvents:UIControlEventEditingChanged];
- (void)editingChanged:(id)object {
// Do your code here
}
// Swift
textObject.addTarget(self, action: #selector(self.editingChanged(textObject:)), for: .editingChanged)
func editingChanged(textObject: AnyObject) {
// Do your code here
}