Я только что начал с xcode и objective-c и сделал некоторые очень простые приложения, но у меня проблема с этим очень просто. кнопка возврата клавиатуры не скрывает клавиатуру.
Я искал интернет для решения, и все, что они говорят, это подключить делегат к владельцу файла и добавить функцию, и она должна работать, я сделал это и ничего не работает.
У меня есть кнопка ok, и она работает, а также нажатие на любое свободное место на экране работает, просто кнопка возврата....
Я использую симулятор, а не тестирование на iphone. (xcode 3.2.5 64 бит с симулятором 4.2).
Это строка кода, которая должна связывать делегат с каждым textFiled.
1. Я уже пробовал возвращать оба YES
и NO
, не работал.
2. Я попробовал как конкретное имя объекта для textField, так и этот общий способ, не работал.
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
В: подключении контроллера основного вида → соединений → выходов, у меня есть: delegate - File Owner. и в владельце файла в реферирующих точках есть: delegate - Round style text.....
EDIT - я забыл упомянуть об этом раньше, у меня есть проверка и метод не вызывается!!!
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
NSLog(@"Working!!!");
[textField resignFirstResponder];
return YES;
}
что я должен сделать, чтобы это произошло? вот почему люди говорят, чтобы связать делегата, но в моем случае это связано и не вызывает функцию... я знаю, что это своего рода глупый вопрос, но для такого благородного, как я, решение не очевидно...
ОК, другое Edit - со всем моим кодом: просто не могу понять, что делать....
Это: basicViewController.h
:
#import <UIKit/UIKit.h>
@interface basicViewController : <#superclass#> <UITextFieldDelegate>
@interface basicViewController : UIViewController <UITextFieldDelegate> {
//every object that we want to interact with (like text field or lable) is call an outlet!!!!
//here we define the outlets for our program
IBOutlet UITextField *txtName;
IBOutlet UILabel *lblMessage;
}
//here are the getters and setter for our outlets
@property (nonatomic, retain) IBOutlet UITextField *txtName;
@property (nonatomic, retain) IBOutlet UILabel *lblMessage;
//method decleration for the OK button action
- (IBAction) doSomething;
//method for hiding the keyboard when clicking on empty area in the app
//we will put an invisible button on all area and clicking on it will make keyboard disapear
- (IBAction) makeKeyboardGoAway;
@end
Это basicViewController.m
:
#import "basicViewController.h"
@implementation basicViewController
//synthesizeing the objects that we made' this will create the getter and setters automaticly
@synthesize txtName;
@synthesize lblMessage;
- (IBAction) doSomething{
// makeing keyboard disapear when pressing ok button (doing that form the text field)
//when pressing the OK button, the keyboard will disapear and when clicking in the text field it will show again
[txtName resignFirstResponder];
NSString *msg = [[NSString alloc] initWithFormat:@"Hello, %@",txtName.text];
//the objective-c way for setting the test in the text field
[lblMessage setText:msg];
//the regular object oriented way
//lblMessage.text = msg;
[msg release];
}
- (IBAction) makeKeyboardGoAway{
[txtName resignFirstResponder];
}
//when clicking the return button in the keybaord
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
NSLog(@"Working!!!");
[textField resignFirstResponder];
return YES;
}
- (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.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
}
@end
Может быть, теперь я более ясен, извините, я этого не делал раньше. У кого-то есть идея, что я делаю неправильно? он должен быть довольно прочным.....
EDIT - добавление изображения всех элементов, я надеюсь, что это поможет мне: -)
10x много для каждого, кто пытается помочь.... Мне очень нравится эта фреймворк, это так здорово после С++ и java, python и многих других... и я работаю с книгой, но это для ios 3.1, может быть, это проблема.....