2013-02-02 25 views
12

làm thế nào để làm cho NSTextField thực sự là một dòng?làm cho nstextfield dòng đơn

Tôi đã tạo trường văn bản theo chương trình. khi nhấn phím quay lại, tất cả văn bản sẽ được chọn. nhưng tôi vẫn có thể dán nhiều dòng văn bản. Và khi tôi nhấn mũi tên phải hoặc mũi tên xuống, nó sẽ di chuyển đến dòng tiếp theo.

Không có những vấn đề này nếu tôi sử dụng IB và đặt "sử dụng chế độ dòng đơn", nhưng tôi không thể tìm đúng phương pháp để đặt nó theo chương trình.

+0

IB hiện rất nhiều thiết lập mặc định kỳ diệu, đôi khi bạn có thể kiểm tra xib để xem những gì các cặp giá trị quan trọng được thiết lập –

+1

@GradyPlayer Vâng nó, vấn đề là tôi muốn thiết lập nó lập trình. – Jensen

Trả lời

5

này làm việc cho tôi khi lập trình tạo ra điều khiển:

[myTextField.cell setWraps:NO]; 
[myTextField.cell setScrollable:YES]; 

Hãy ghi nhớ rằng việc truy cập trực tiếp đến tế bào NSControl đã được nản chí kể từ khi OS X 10.10 giới thiệu:

deprecation Dần dần NSCell

Mac OS X 10.10 thực hiện một bước khác đối với việc ngừng sử dụng cuối cùng là ô. Truy cập trực tiếp vào ô kiểm soát không được khuyến khích và các phương thức cho phép nó sẽ không được chấp nhận chính thức trong bản phát hành tiếp theo. Một loạt các API cấp ô được nâng cấp lên các lớp con khác nhau Kiểm soát để cung cấp quyền truy cập không có chức năng vào chức năng quan trọng . NSLevelIndicator, NSTextField, NSSearchField, NSSlider, và NSPathControl đều có các thuộc tính mới cho mục đích này. Dựa trên ô NSTableViews hiện không còn được dùng nữa và NSTableViews dựa trên chế độ xem phải được sử dụng thay thế cho lần lượt . Các NSBrowser dựa trên ma trận cũng bị phản đối vì lợi ích của giao diện dựa trên mặt hàng.

https://developer.apple.com/library/mac/releasenotes/AppKit/RN-AppKit/

+1

Bạn có biết có cách nào để đặt trường văn bản có thể cuộn được mà không cần truy cập vào ô của nó không? Gọi 'setUsesSingleLineMode:' trên trường văn bản (trái ngược với ô) không làm cho nó cuộn được. – Dalmazio

+0

Vì vậy? Làm thế nào điều này có thể được thực hiện nếu nó không được chấp nhận? –

+0

Điều khiển + Enter làm cho textfield hai dòng một lần nữa. – frank

Các vấn đề liên quan