2009-01-01 30 views
14

tôi UIButton sử dụng + buttonWithType:thủ thiết lập một nhà nước UIButton

Những gì tôi cần phải tìm ra là làm thế nào để tự thay đổi trạng thái nút. Có những lúc tôi cần nó được đặt thành "bị vô hiệu hóa".

Tôi đọc qua tài liệu UIButton nhưng dường như tôi không thể tìm thấy bất kỳ điều gì về cách đặt trạng thái nút theo cách thủ công.

Bất kỳ suy nghĩ nào cũng sẽ được đánh giá cao.

+0

Để bổ sung những gì Ben cho biết, kiểm tra tài sản cho phép trong UIControl: http://developer.apple.com/iphone /library/documentation/UIKit/Reference/UIControl_Class/Reference/Reference.html#//apple_ref/occ/instp/UIControl/enabled – Athena

Trả lời

42

Bạn đã thử button.enabled = NO;?

+0

Xin cảm ơn Ben. Tôi thậm chí không nghĩ đến việc nhìn vào siêu lớp. Bài học lớn đã học được về điều đó! – acreek

+0

tôi tự hỏi tại sao button.isEnabled không thể ghi trong khi button.enabled hoạt động – OMGPOP

+0

KHÔNG, tôi không thử điều đó, cảm ơn;) – rednaw

6

Không phải chỉ là thuộc tính state? Nó nằm trong lớp UIControl là lớp bậc trên của UIButton.

Chỉnh sửa: oops, không phải vậy. Các tài liệu nói "Thuộc tính này chỉ đọc — không có phương thức setter tương ứng."

+0

Tôi có thể đề nghị rằng vì câu trả lời này là không chính xác, bởi sự nhập học của chính bạn, nó sẽ bị xóa? –

+0

Thông thường tôi đồng ý, tuy nhiên mọi người dường như thấy nó hữu ích mặc dù nó sai - có lẽ đó là một sai lầm phổ biến và nó hữu ích để có được gắn cờ? –

21

cũng có những trạng thái:

button.highlighted = NO; 
    button.selected = NO; 
3

Bạn có thể tự thiết lập trạng thái của UIButton.

UIButton *btnCheck=[UIButton buttonWithType:UIButtonTypeCustom]; 

if(btncheck isselected]) 
{ 
    btncheck.selected=FALSE; 
} 
else 
{ 
    btncheck.selected=TRUE; 
} 

Bạn có thể thực hiện thao tác trên UIButton theo yêu cầu của bạn như thực hiện một số thao tác khi chọn UIButton và trong khi không được chọn.

Hy vọng điều này sẽ giúp bạn ....

0

Đối với bất cứ ai đến đây tìm cách để thay đổi 'nhà nước' của nút (như trái ngược với 'kích hoạt'). Stephen đúng "Thuộc tính này chỉ đọc — không có phương thức setter tương ứng."

Điều bạn thực sự muốn đặt là trạng thái của ô nút.

[[myNSButtonOutlet cell] setState: NSOnState]; //Options NSOnState, NSOffState, NSMixedState 
2

cho Swift 3 bạn có thể sử dụng

button.isSelected = true

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