2012-04-06 37 views
15

Tôi đang cố hiển thị UIAlertView trên Chạm hoặc Nhấp vào UITextField cho cả IPad và IPhone. Tôi tạo một IBAction và đính kèm nó với sự kiện Tap Down của UITextField.Làm cách nào để nhận Sự kiện Nhấn UITextField?

Nhưng không phải của mình làm việc một cách chính xác, nghĩa là không phải lúc nào, trong trường hợp của iphone và không làm việc trong trường hợp của iPad

- (IBAction) TopuchState 
{ 
    //function code 
} 

xin vui lòng giúp đỡ Làm thế nào tôi có thể làm điều này.

enter image description here

+0

Touch Up Bên trong? Bạn đã thử cái đó chưa? –

+0

nếu trường văn bản của bạn nằm trong scrollview, sau đó bỏ chọn nội dung chậm trễ chạm vào kiểm tra thuộc tính cho chế độ xem cuộn. Nó sẽ làm việc sau đó. – Yawar

Trả lời

21

Hãy thử thêm một mục tiêu cho khi một trường văn bản đặc biệt bắt đầu chỉnh sửa (UIControlEventEditingDidBegin):

[textField1 addTarget:delegate action:@selector(textField1Active:) forControlEvents:UIControlEventEditingDidBegin]; 
+0

Cảm ơn nó đã tiết kiệm thời gian của tôi. – BSKANIA

+0

Tôi đã quá mệt mỏi với các bài đăng hỏi cách loại bỏ bàn phím bằng cách nhấn vào bên ngoài trường văn bản .... cảm ơn một loạt! (Tôi đã sử dụng UIControlEventAllTouchEvents) –

2

Tôi nghĩ rằng nó dễ dàng hơn nếu bạn thiết lập các đại biểu cho UITextField và thực hiện các phương pháp:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 

sau đó bên trong phương pháp mà bạn có thể dễ dàng tạo ra và hiển thị UIAlertView của bạn.

Hãy xem UITextFieldDelegate.

Chúc may mắn!

27

Như bạn đã đăng ký để được UITextField đại biểu, thực hiện phương pháp này:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"Alert Message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil]; 
    [alert show]; 

    return YES; 
} 
+0

Câu trả lời hoàn hảo. – Sam

+1

Tôi có gần 8-9 UITextFields trên Chế độ xem và trong thẻ điều khiển của iPad cũng không hoạt động nếu bạn khớp với sự kiện của UITextFields bị cháy. – Azhar

0

Connect TextField với delegate và Now gọi chức năng này !!

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {  
    [email protected]" "; 
    return YES; 
} 
0

Trong Swift 3

Thêm một mục tiêu cho một trường văn bản đặc biệt cho sự kiện .editingDidBegin trong phương pháp viewDidLoad

self.textField.addTarget(self, action: #selector(textFieldTouched(_:)), for: UIControlEvents.editingDidBegin) 

func textFieldTouched(textField: UITextField) { 
//Show AlertView 
} 
Các vấn đề liên quan