Kiểu viết hoa tự động UITextField - Ứng dụng iPhone


112

Có cách nào để đặt autocapitalizationType cho a UITextFieldđể chữ cái đầu tiên của mỗi từ được viết hoa theo mặc định không?

Đây là một ví dụ về những gì tôi muốn


45
Mặt khác - thật tuyệt khi có thể google 'viết hoa UITextField' và xuất hiện thông báo này sau 2 giây, thay vì lãng phí cả phút để mở tài liệu và quét. Tài liệu về StackOverflow IS.
Shaun Budhram

1
Loạng choạng khi câu hỏi như thế này làm cho tôi hạnh phúc vì 1) người có khả năng đặt câu hỏi trực tiếp chặt chẽ (không thành vấn đề phạm vi) và 2) người nhận xét các tốt nhất ***
Will Von Ullrich

Câu trả lời:


237

Sử dụng textField.autocapitalizationType = UITextAutocapitalizationTypeWords;

Để biết thêm thông tin, vui lòng đọc: Tham chiếu giao thức UITextInputTraits


2
Sẽ không có ích gì nếu bạn chuyển văn bản sang trường. Trong trường hợp nhập văn bản đại biểu này và thay thế chữ cái đầu tiên của mỗi từ
HotJard

Bạn có muốn giải thích thêm một số HotJard không? Tôi muốn biết cách dán một văn bản và viết hoa tự động.
vnchopra

5
Nó không hoạt động, tôi đã thử nó trên Xcode 6 iOS 8 Swift. Tôi đã làm điều đó trong trình tạo mã và giao diện, cả hai đều không hoạt động.
Van Du Tran

10
Đảm bảo bàn phím trong trình tạo giao diện được đặt thành mặc định. Nếu không, nó sẽ không hoạt động
OscarVGG

3
Ngoài ra hãy chắc chắn rằng bạn có autocapitalization bật trong cài đặt os (settings-> General-> bàn phím), iOS thiết lập giá trị ghi đè bất cứ điều gì bạn thiết lập trên các lĩnh vực văn bản
Lope

38

Những gì chúng tôi muốn làm là thiết lập trường văn bản autocapitalizationType.

Mục tiêu-C:

self.textfield.autocapitalizationType = UITextAutocapitalizationTypeWords

Nhanh:

self.textfield.autocapitalizationType = .words

Có một số tùy chọn ở đây:

nhập mô tả hình ảnh ở đây

  • allCharacters cũng giống như nhấn đúp vào phím shift, về cơ bản là capslock.
  • none khá dễ hiểu, bàn phím sẽ không bao giờ viết hoa các chữ cái.
  • sentences sẽ cố gắng viết hoa từ tiếp theo sau dấu chấm câu kết thúc.
  • words sẽ cố gắng viết hoa mọi từ mới (sau dấu cách), đây dường như là chính xác những gì bạn đang tìm kiếm.

Thuộc tính này cũng có thể được đặt từ Trình kiểm tra thuộc tính của trình tạo giao diện khi bạn đã chọn trường văn bản thích hợp:

nhập mô tả hình ảnh ở đây

"Viết hoa" là tùy chọn đầu tiên trong nhóm này, chỉ cần chọn kích thước phông chữ tối thiểu cho trường văn bản.


8

Đặt thuộc capitalizationtính thành "Từ" sẽ đề xuất người dùng nhập các từ được viết hoa. Người dùng có thể ghi đè điều này bằng cách bỏ di chuyển trên bàn phím. Điều tốt nhất cần làm là viết hoa các từ trong mã:

NSString *text = [myTextField.text capitalizedString];

Thao tác này sẽ viết hoa toàn bộ chuỗi, UITextAutocapitalizationTypeWords chỉ viết hoa chữ cái đầu tiên trong mỗi từ được nhập.
Jacob

Mặc dù đây không phải là những gì OP muốn, nhưng tôi thực sự thấy nó rất hữu ích! Tôi đã lưu một NSString ở đâu đó, tất cả đều được viết hoa. Tôi cần so sánh văn bản của UITextField với chuỗi gốc và việc sử dụng đề xuất của bạn đã giúp tôi không phải giải thích mọi thứ cho người dùng của mình (tôi để Objective c làm tất cả công việc:)) Cảm ơn bạn
Septronic

7

Đúng. Trên InterfaceBuilder, trên trình kiểm tra thuộc tính textField, bạn có thể thiết lập thuộc tính Viết hoa thành Từ.


6

Có một câu trả lời cho Obj-C, tôi ở đây cho Swift;

textField.autocapitalizationType = UITextAutocapitalizationType.words

hoặc cách ngắn hơn

textField.autocapitalizationType = .words

Tôi đã thử nghiệm .words và .allCharacters. Trên Simulator, nó hoạt động. Trên iPhone X đã kết nối thì không. Xcode 10.1, iPhone 12.1.
geohei

1
Tôi sẽ không hoạt động nếu trong cài đặt -> Chung -> Tự động sửa / Tự động viết hoa bị tắt.
Sheetal Shinde,

1

Bạn thậm chí có thể làm điều đó tạo thành Storyboard hoặc tệp .xib. Chỉ cần chọn trường văn bản và trong trình kiểm tra thuộc tính ở bên phải có phần Viết hoa nơi bạn có thể chọn bất kỳ thứ gì phù hợp với mình. Trong trường hợp của bạn, đó là viết hoa "Từ".


0

Trong Xamarin.ios / Monotouch, điều này đã làm việc cho tôi:

textField.AutocapitalizationType = UITextAutocapitalizationType.Words;
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.