Vì một lý do nào đó, khi tôi thêm UITextfield làm phần phụ của khung nhìn nội dung của tablecell, nút xóa không phù hợp với văn bản được nhập trong trường và xuất hiện một chút bên dưới văn bản đó. Có cách nào tôi có thể di chuyển các văn bản của clearbutton để ngăn chặn điều này xảy ra? Cảm ơn bạn đã được trợ giúp,Làm cách nào để di chuyển nút rõ ràng trong UITextField?
Trả lời
Tôi chưa thấy điều này và ảnh chụp màn hình sẽ hữu ích. Tuy nhiên, câu trả lời nhanh là bạn có thể kiểm tra mảng subviews của UITextField, tìm subview có chứa nút rõ ràng, và điều chỉnh frame.origin của nó.
Chỉnh sửa: Có vẻ như tôi đã bị bỏ phiếu cho câu trả lời này (được viết vào năm 2010). Đây không phải là phương thức được chấp thuận "chính thức" bởi vì bạn đang thao túng các đối tượng riêng tư, nhưng Apple không thể phát hiện ra nó. Rủi ro chính là phân cấp khung nhìn có thể được thay đổi tại một số điểm.
Subclass UITextField và ghi đè phương pháp này:
- (CGRect)clearButtonRectForBounds:(CGRect)bounds
{
return CGRectMake(bounds.origin.x - 10, bounds.origin.y, bounds.size.width, bounds.size.height);
}
bù lại CGRect phù hợp với nhu cầu của bạn.
Điều này sẽ không đặt nút ở cạnh phải. Điều này sẽ: trả về CGRectMake (bounds.size.width/2-20, bounds.origin.y-3, bounds.size.width, bounds.size.height); – Luda
Tôi đã phân loại số UITextField
và ghi đè hàm .
.h
#import <UIKit/UIKit.h>
@interface TVUITextFieldWithClearButton : UITextField
@end
.m
#import "TVUITextFieldWithClearButton.h"
@implementation TVUITextFieldWithClearButton
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
- (void)awakeFromNib
{
self.clearButtonMode = UITextFieldViewModeWhileEditing;
}
- (CGRect)clearButtonRectForBounds:(CGRect)bounds
{
return CGRectMake(bounds.size.width/2-20 , bounds.origin.y-3, bounds.size.width, bounds.size.height);
}
@end
Có vẻ như bạn đã downvoted các câu trả lời khác. Không mát mẻ. –
Tôi đã bỏ phiếu bầu chọn một trong những câu trả lời. Tôi đã làm điều đó bởi vì câu trả lời, theo ý kiến của tôi, là sai. Tôi đã nhận xét lý do tại sao tôi nghĩ như vậy, và tôi sẽ vui mừng khi tiếp tục nói chuyện với bạn về điều đó (trên các chủ đề liên quan). Hầu hết các nhà nhập khẩu là để hiểu làm thế nào những điều được thực hiện đúng và không phải là mát như thế nào là bạn. – Luda
Như đã trình bày bởi @Luda cách chính xác là để phân lớp UITextField và ghi đè - (CGRect)clearButtonRectForBounds:(CGRect)bounds
. Tuy nhiên, các giới hạn được truyền vào phương thức là các phương thức của chính chế độ xem chứ không phải là nút. Vì vậy, bạn nên gọi super
để có được kích thước hệ điều hành được cung cấp (để tránh biến dạng của hình ảnh) và sau đó điều chỉnh nguồn gốc cho phù hợp với nhu cầu của bạn.
ví dụ:
- (CGRect)clearButtonRectForBounds:(CGRect)bounds {
CGRect originalRect = [super clearButtonRectForBounds:bounds];
return CGRectOffset(originalRect, -10, 0); //shift the button 10 points to the left
}
của Apple docs nhà nước:
Thảo luận Bạn không nên gọi phương pháp này trực tiếp. Nếu bạn muốn đặt nút rõ ràng ở một vị trí khác, bạn có thể ghi đè phương thức này và trả lại hình chữ nhật mới. Phương pháp của bạn nên gọi triển khai siêu thực hiện và chỉ sửa đổi xuất xứ của hình chữ nhật được trả lại. Thay đổi kích thước của nút rõ ràng có thể gây biến dạng không cần thiết của hình ảnh nút.
- 1. Rõ ràng mặc định constructor di chuyển
- 2. Di chuyển nút rõ ràng (màu xám x) ở bên phải của UISearchBar khi hủy bỏ nút khai thác
- 3. Làm cách nào để tắt nút rõ ràng mà IE10 chèn vào hộp văn bản?
- 4. Di chuyển con trỏ có lập trình trong UiTextField
- 5. làm thế nào để di chuyển con trỏ trong UITextField sau khi thiết lập giá trị của nó
- 6. Làm cách nào để di chuyển thẻ?
- 7. Để ràng buộc rõ ràng với^l trong Bash
- 8. Làm thế nào để di chuyển QSplitter?
- 9. Thêm nút (tùy chỉnh) rõ ràng vào UIActivityViewController
- 10. Làm thế nào để cast một cách rõ ràng trong clojure khi interfacing với java
- 11. AngularJS, văn bản đầu vào rõ ràng với nút
- 12. Chuyển đổi "var" thành loại rõ ràng trong Visual Studio?
- 13. Làm cách nào để di chuyển tệp trong node.js?
- 14. Làm cách nào để di chuyển con rùa trong LOGO?
- 15. Làm cách nào để di chuyển chú thích trong Highcharts?
- 16. XSLT: Di chuyển nút một cấp lên
- 17. Làm cách nào để cập nhật nút tác vụ trình chỉnh sửa khi đang di chuyển?
- 18. Làm thế nào để bạn phá hủy một đối tượng trong Perl một cách rõ ràng?
- 19. Làm thế nào để trở về đối tượng một cách rõ ràng trong CoffeeScript
- 20. Văn bản UITextfield đang di chuyển khi chỉnh sửa
- 21. Canvas rõ ràng trong Paper.js
- 22. vector :: rõ ràng trong C++
- 23. Làm thế nào để thực hiện một hộp văn bản với một nút rõ ràng trong wpf?
- 24. UpdateSourceTrigger = Rõ ràng
- 25. Làm thế nào để sử dụng LevelDB khi di chuyển?
- 26. Rõ ràng mảng của setTimeout
- 27. XPath: chọn các nút có thuộc tính 'xmlns' rõ ràng
- 28. Làm cách nào để kiểm tra xem có tồn tại ẩn hoặc rõ ràng không?
- 29. Nút di chuyển vào Div
- 30. Rõ ràng nulling
Cảm ơn bạn đã tip, tôi đang trên đường ngay bây giờ nhưng khi tôi dừng lại, tôi sẽ dùng thử và cập nhật cho bạn. – Jake
Yeah im chỉ di chuyển subview. – Jake
Mã của UITextField.m không thể truy cập được. UITextField nên được subclassed – Luda