NSToolbar
常用NSToolbar
开发偏好设置界面,在xib中可以直接拖NSToolbar
到Window
中,可以自定义图片文字。
勾选Behavior
中的Selectable
,NSToolbarItem
是可选中样式的。
设置某个NSToolbarItem
默认选中,需要先设置默认选中的NSToolbarItem
的Identifier
,使用下面代码完成默认选中:
1 | toolbar.selectedItemIdentifier = NSToolbarItem.Identifier(rawValue: "id") |
Window按钮
控制window左上角关闭、最小化、最大化按钮的是否可用,以及显示隐藏。
可以在xib中勾选Controls
中的Close
、Minimize
、Resize
,控制按钮是否可用。或者使用代码:
1 | self.window?.standardWindowButton(.closeButton)?.isEnabled = false |
使用代码可以隐藏按钮:
1 | self.window?.standardWindowButton(.miniaturizeButton)?.isHidden = true |
NSButton
设置按钮为蓝色背景,需要设置按钮的Key Equivalent
为回车键
Label
macOS中Label
继承自NSTextField
,有两种:Label
和Wrapping Label
Wrapping Label
为多行Label,无需设置Line Break为Character Wrap
使用Label
设置Line Break也无法折行显示。
当Label
仅作为文字显示时,鼠标移上不变光标显示,需要设置Action为Sent On End Editing
NSTableCellView
移除默认的Cell点击变蓝,设置NSTableView的selectionHighlightStyle
:
1 | self.tableView.selectionHighlightStyle = .none |
NSTableCellView根据存放的Label内容自适应高度,OSX 10.13以后,在xib中设置正确的约束,设置Row自适应高度即可:
1 | self.tableView.usesAutomaticRowHeights = true |
无需指定默认高度rowHeight
,亦无需实现row高度的代理方法func tableView(_ tableView: NSTableView, heightOfRow row: Int) -> CGFloat
NSTextField
限制输入框NSTextField
的输入内容,仅允许输入数字,需要自定义Formatter
1 | import Cocoa |