Bàn phím hệ thống có thể tham chiếu đến UITextfield là người trả lời đầu tiên như thế nào?
Nó chỉ yêu cầu hệ thống trả lời đầu tiên; Thật không may, đó là một phương pháp UIKit riêng (hoặc là, cuối cùng tôi đã kiểm tra). Bạn có thể tìm thấy phần trả lời đầu tiên bằng cách đệ quy thông qua phân cấp khung nhìn và hỏi mỗi lượt xem, nhưng điều đó khá vụng về.
Thay vào đó, bạn có thể thêm một liên kết đến các lĩnh vực văn bản trên quan điểm đầu vào (Tôi giả định quan điểm đầu vào của bạn là một lớp con tùy chỉnh UIView):
@property(nonatomic, assign) UITextField* target;
Sau đó sử dụng phương pháp đại biểu UITextField theo quan điểm của bạn điều khiển để xem khi nào trường văn bản đang được tập trung:
- (void)textFieldDidBeginEditing:(UITextField*)textField
{
if ([textField.inputView isKindOfClass:[MyInputView class]])
((MyInputView*)textField.inputView).target = textField;
}
- (void)textFieldDidEndEditing:(UITextField*)textField
{
if ([textField.inputView isKindOfClass:[MyInputView class]])
((MyInputView*)textField.inputView).target = nil;
}
hãy chính xác hơn, ý bạn là gì khi "nhập trực tiếp trở lại trường văn bản"? Bạn muốn tập trung vào UITextField? – Dion
Xin lỗi, tôi nghĩ tôi đã chính xác hơn trong lời giải thích của mình. Những gì tôi có nghĩa là, tôi đặt thuộc tính inputView trên một UITextField để xem đầu vào tùy chỉnh của tôi. Vì vậy, khi người dùng nhấn một nút trên inputView tùy chỉnh của tôi, làm thế nào để tôi có được một tham chiếu đến UITextfield là trả lời đầu tiên hiện tại để tôi có thể thay đổi thuộc tính văn bản của UITextfield đó để phản ánh đầu vào của người dùng? –