2016-03-25 6 views
1

を押したときに私がボタンを持っている:を表示するキーボードuibutton

@property (weak, nonatomic) IBOutlet UIBarButtonItem *addTaskBtn; 

...

// Add new task button action. 
- (IBAction)addTaskBtnAction:(id)sender { 

} 

私は私が私のボタンを押すと、テキストフィールドのアクセサリーのツールバーとキーボードがポップアップします。そのテキストフィールドはまた、パラドックスの一種を引き起こす最初のレスポンダーになるはずです...

私はそれを既存のtextfiledの最初のレスポンダーにすることなく表示することは不可能ですが、私はツールバーとしてテキストフィールドを作成しようとしていますキーボードの

このアプリのベストな例は、https://todoist.com/です。彼らは私が達成しようとしているものを正確に実行することができました。

アイデア?

+0

キーボードを表示したいときに最初の応答者になる隠しテキストフィールドを作ることができます – HardikDG

+0

私はそれを試みました。問題は、その隠されたテキストフィールドがキーボードをプルアップする場合、私はどのように私のツールバーのアクセサリーを最初のレスポンダと同じキーボードに接続するのでしょうか?私は – mic773

答えて

0

隠されたテキストフィールドにこのコードを試してみてください:隠されたとして
がtxtHiddenを作るが、それはボタンのファーストレスポンダこれが最善の方法ではありません

- (IBAction)btnOpenTextfield:(id)sender { 
    [self.txtHidden becomeFirstResponder]; 
} 

- (void) setupToolbar { 
    UIToolbar *keyboardToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 42)]; 
    self.txtToolbar = [[UITextField alloc] initWithFrame:CGRectMake(8, 6, 250, 30)]; 
    UIBarButtonItem *textBtn = [[UIBarButtonItem alloc] initWithCustomView:self.txtToolbar ]; 
    UIBarButtonItem *postBtn = [[UIBarButtonItem alloc]initWithTitle:@"Post" style:UIBarButtonItemStyleBordered target:self action:@selector(postComment)]; 
    [keyboardToolBar setItems: [NSArray arrayWithObjects:textBtn,postBtn,nil]]; 
    self.txtHidden.inputAccessoryView = keyboardToolBar; 
} 

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    if (textField == self.txtHidden) { 
     [self setupToolbar]; 
    } 
    return true; 
} 

- (void)textFieldDidBeginEditing:(UITextField *)textField { 
    [self performSelector:@selector(changeResponder) withObject:nil afterDelay:0.1]; 
    [self changeResponder]; 
} 

- (void) changeResponder { 
    [self.txtToolbar becomeFirstResponder]; 
} 

クリックしますが、あなたは他の良くなるまで、あなたはこれを試すことができます解答

+0

@ mic773ですが、これはあなたを助けますか?はい、答えをチェックしてください他の人もそれから利益を得ることができます – HardikDG

関連する問題