Использование протокола UIKeyInput для получения входных данных с Bluetooth-клавиатуры

У меня есть Bluetooth ножной переключатель, который в основном является беспроводной клавиатурой. Одна педаль посылает клавишу со стрелкой вверх, другая - клавишу со стрелкой вниз. Я хочу иметь возможность выполнять свой собственный код в приложении iPad, когда нажата одна из педалей. Производитель педали говорит мне, что я должен создать UITextField, и принять протокол UIKeyInput в содержании UIView и использовать beginningOfDocument и методы endOfDocument , чтобы выполнить мой код. Я сделал это, но что бы я ни делал, ни один из методов UIKeyInput или UITextInput не вызывается. Может ли кто-нибудь провести меня через это или направить меня в учебное пособие по чему-то подобному? Есть ли более простой способ сделать это?

Спасибо за вашу помощь.

Вот мой .h:

#import 

@interface Pedal_ProtocolViewController : UIViewController {
UITextField *myTextField;
}
@property (nonatomic, retain) IBOutlet UITextField *myTextField;
@end

И вот мой .m:

#import "Pedal_ProtocolViewController.h"

@implementation Pedal_ProtocolViewController

@synthesize myTextField;

- (void)dealloc
{
    [super dealloc];
}

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
[super viewDidLoad];
[myTextField canBecomeFirstResponder];
[myTextField becomeFirstResponder];
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return YES;
}

#pragma mark -
#pragma mark UIKeyInput Protocol Methods

- (BOOL)hasText {
    return NO;
}

- (void)insertText:(NSString *)theText {
}

- (void)deleteBackward {
}

- (BOOL)canBecomeFirstResponder {
    return YES; 
}

#pragma mark -
#pragma mark UITextInput Protocol Methods

- (NSString *)textInRange:(UITextRange *)range {
    return @"";
}
- (void)replaceRange:(UITextRange *)range withText:(NSString *)text {
}
- (void) setSelectedTextRange: (UITextRange *) range {
}
- (UITextRange *) markedTextRange {
    return nil;
}
- (NSDictionary *) markedTextStyle {
    return nil;
}
- (void) setMarkedTextStyle: (NSDictionary *) style {
}
- (void)setMarkedText:(NSString *)markedText selectedRange:(NSRange)selectedRange {
}
- (void) unmarkText {
}
- (UITextPosition *) endOfDocument {
    //DOWN KEY

    NSLog(@"Down");
    return nil;
}
- (UITextPosition *) beginningOfDocument {
    //UP KEY

    NSLog(@"UP");
    return nil;
}
- (UITextRange *)textRangeFromPosition:(UITextPosition *)fromPosition toPosition:(UITextPosition *)toPosition{
    return nil;
}
- (UITextPosition *)positionFromPosition:(UITextPosition *)position offset:(NSInteger)offset{
    return nil;
}
- (UITextPosition *)positionFromPosition:(UITextPosition *)position inDirection:(UITextLayoutDirection)direction offset:(NSInteger)offset {
    return nil;
}
- (NSComparisonResult) comparePosition: (UITextPosition *)position toPosition: (UITextPosition *)other {
    return NSOrderedSame;
}
- (NSInteger) offsetFromPosition: (UITextPosition *)from toPosition: (UITextPosition *)toPosition {
    return 0;
}
- (void) setInputDelegate: (id ) delegate {
}
- (id ) inputDelegate {
    return nil;
}
- (id ) tokenizer {
    return nil;
}
- (UITextPosition *)positionWithinRange:(UITextRange *)range farthestInDirection:(UITextLayoutDirection)direction {
    return nil;
}
- (UITextRange *) characterRangeByExtendingPosition: (UITextPosition *) position inDirection: (UITextLayoutDirection) direction {
    return nil;
}
- (UITextWritingDirection) baseWritingDirectionForPosition: (UITextPosition *)position inDirection: (UITextStorageDirection)direction {
    return 0;
}
- (void) setBaseWritingDirection: (UITextWritingDirection)writingDirection forRange:(UITextRange *)range {
}
- (CGRect) firstRectForRange: (UITextRange *) range {
    return CGRectZero;
}
- (CGRect) caretRectForPosition: (UITextPosition *) position  {
    return CGRectZero;
}
- (UITextPosition *) closestPositionToPoint: (CGPoint)point {
    return nil;
}
- (UITextPosition *) closestPositionToPoint: (CGPoint)point withinRange: (UITextRange *) range {
    return nil;
}
- (UITextRange *) characterRangeAtPoint: (CGPoint)point {
    return nil;
}
- (UITextRange *) selectedTextRange {
    return [[UITextRange alloc]init];
}

@end

-121--1355183-

Почему имена пакетов часто начинаются с «com» [duplicate] Возможно дублирование: пакеты Java com и org Я разработчик java. В настоящее время я изучаю струны и при чтении учебного пособия любопытство вмешивается в мой ум относительно пакета com.something....

Возможно дублирование:
Пакеты Java com and org

Я разработчик java. В настоящее время я изучаю струны и при чтении учебного пособия любопытство, вмешивающееся в мой ум в отношении

package com.something.something;

я знаю, что это очень простая декларация пакета, но как насчет

package **com**.something.something;

Этот фрагмент названия пакета часто встречается во многих коммерческих дистрибутивах. Теперь я хочу знать, что это значит? Пожалуйста, уточните это.

Спасибо и извините, если я не смог прояснить это...

36
задан Shubham 24 December 2018 в 18:59
поделиться