Hi,
How can I make NSTextField vibracny?
I added a NSVisualEffectView and add a label
how can I make my label vibrancy
https://imgur.com/a/Y6axxms
Thanks!
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hi,
I'm using NSButton and the vibrancy effect works only when the system is in dark mode
How can I get a vibrancy effect also on light mode?
Hi,
How can I pause/play the now playing song with MedaiRemote framework
Thanks!
HI,
Is it possible to add a private framework to the project?
I tried to import MediaRemote.framework but Xcode does not find the framework also when I added the path to the framework in Framework linker
Hi,
How can I override property shadowColor from NSShadow?
thanks!
Hi,
How can make auto-scroll label with NSTextField like in the iTunes app?
Thanks!
Hi,
I override keyUp function to detect if the space key is press everything works but the screen blink with a white flash every time I press space key how can I fix it?
override func keyUp(with event: NSEvent) {
//Tap on escape 0x31 = Space
if event.keyCode == UInt16(0x31){
print("Hello")
}
}
Hi,
How can I show the avaliable list device for AirPlay like this?
Hi,
I'm trying to add a drop shadow for NSImageView with NSBeizerPath but the shadow does not appear
//add cgPath var to NSBezierPath
extension NSBezierPath {
public var cgPath: CGPath {
let path = CGMutablePath()
var points = [CGPoint](repeating: .zero, count: 3)
for i in 0 ..< elementCount {
let type = element(at: i, associatedPoints: &points)
switch type {
case .moveTo:
path.move(to: points[0])
case .lineTo:
path.addLine(to: points[0])
case .curveTo:
path.addCurve(to: points[2], control1: points[0], control2: points[1])
case .closePath:
path.closeSubpath()
@unknown default:
continue
}
}
return path
}
}
//View
var albumImage = NSImageView()
albumImage.layer?.shadowRadius = 10.0
albumImage.layer?.shadowColor = .black
albumImage.layer?.shadowOffset = CGSize(width: 10, height: 10)
albumImage.layer?.shadowOpacity = 1.0
albumImage.layer?.shadowPath = NSBezierPath(roundedRect: albumImage.bounds, xRadius: 28.0, yRadius: 28.0).cgPath
Hi,
I just updated to macOS Monterey and Xcode 13.1 and the NSButtons on my view not work anymore I tap and nothing work
let visualEffect = NSVisualEffectView()
//var theme = NSAppearance(appearanceNamed: NSAppearance.Name.vibrantDark, bundle: nil)
visualEffect.translatesAutoresizingMaskIntoConstraints = false
visualEffect.blendingMode = .behindWindow
visualEffect.state = .active
visualEffect.wantsLayer = true
visualEffect.layer?.cornerRadius = roundvalueDefault.value(forKey: "roundvaluekey") as! CGFloat
visualEffect.layer?.opacity = 0.0
window?.isOpaque = false
window?.backgroundColor = .clear //Make window transpraent
window?.isMovableByWindowBackground = true
checkAlt() //Check if floating
//Custom toolbar
let customToolbar = NSToolbar()
customToolbar.isVisible = true
window?.titleVisibility = .hidden
window?.styleMask.insert(.fullSizeContentView)
window?.titlebarAppearsTransparent = true
customToolbar.showsBaselineSeparator = false
window?.contentView?.wantsLayer = true
window?.toolbar = customToolbar
//Change windows radius
//Add the blur effcet to the window
window?.contentView?.addSubview(visualEffect)
guard let constraints = window?.contentView else {
return
}
visualEffect.leadingAnchor.constraint(equalTo: constraints.leadingAnchor).isActive = true
visualEffect.trailingAnchor.constraint(equalTo: constraints.trailingAnchor).isActive = true
visualEffect.topAnchor.constraint(equalTo: constraints.topAnchor).isActive = true
visualEffect.bottomAnchor.constraint(equalTo: constraints.bottomAnchor).isActive = true
}
@IBAction func airplayTapped(_ sender: Any) {
print("AAA")
}
Hi,
How can I add vibrancy to image/NSButton for example my play button (macOS)
I found a SwiftUI library for this but I don't use swift UI
https://github.com/lucasbrown/swiftui-visual-effects
My app
Hi,
I just add airplay to my app and I tried to stream to my TV but not works
AirPlay code:
//Airplay button
let routePickerView = AVRoutePickerView.init(frame: airplayButton.frame)
routePickerView.isRoutePickerButtonBordered = false
self.view.addSubview(routePickerView)let asset = AVAsset(url: URL(string: "https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8")!)
Hi
How can I detect if user get push notification on macOS?
Thanks!
Hi,
I'm trying to resize my rect with CABasicAnimation and the animation go to up and not down
How can I change it?
Video:
https://streamable.com/nw4ekc
Thank you!
let newFrame = NSRect(x: blueRect.frame.origin.x, y: blueRect.frame.origin.y - 100,width: blueRect.frame.size.width, height: 200)
let animation = CABasicAnimation(keyPath: "bounds")
animation.fromValue = NSValue(rect: blueRect.frame)
animation.toValue = NSValue(rect: newFrame)
animation.duration = 0.5 // Animation duration in seconds
blueRect.layer?.add(animation, forKey: "sizeAnimation")
// Update the rect view's size and origin
blueRect.frame = newFrame
Hi
I'm trying to resize my NSPanel with spring animation but I have a position problem (the panel is not on center of screen) when I make the panel bigger (see the video)
How can I fix it?
Video:
https://streamable.com/l4281l
func animationBigger () {
let jump = CASpringAnimation(keyPath: "transform.scale")
jump.damping = 60
jump.mass = 10
jump.initialVelocity = 10
jump.stiffness = 200.0
jump.fromValue = 1.0
jump.toValue = 2.0
jump.duration = 0.4
//self is NSPanel
self.contentView?.layer!.add(jump, forKey: nil)
self.setContentSize(bignotchSize)
}
class NotchView: NSView {
private var mouseDownSubject = PassthroughSubject<NSPoint, Never>()
var mouseDownPublisher: AnyPublisher<NSPoint, Never> {
return mouseDownSubject.eraseToAnyPublisher()
}
//Draw notch
override func draw(_ dirtyRect: NSRect) {
super.draw(dirtyRect)
drawNotch()
}
func drawNotch () {
self.layer?.anchorPoint = CGPoint(x: 0.0, y: 0.0)
let size = self.frame.size
let r: CGFloat = 15.0
let gap: CGFloat = 1.0
let notch = NSBezierPath()
notch.move(to: NSPoint(x: 0.0, y: size.height))
notch.curve(to: NSPoint(x: r, y: size.height - r),
controlPoint1: NSPoint(x: r - gap, y: size.height),
controlPoint2: NSPoint(x: r, y: size.height - gap))
notch.line(to: NSPoint(x: r, y: r))
notch.curve(to: NSPoint(x: 2 * r, y: 0.0),
controlPoint1: NSPoint(x: r, y: gap),
controlPoint2: NSPoint(x: r + gap, y: 0.0))
notch.line(to: NSPoint(x: size.width - 2 * r, y: 0.0))
notch.curve(to: NSPoint(x: size.width - r, y: r),
controlPoint1: NSPoint(x: size.width - r - gap, y: 0.0),
controlPoint2: NSPoint(x: size.width - r, y: gap))
notch.line(to: NSPoint(x: size.width - r, y: size.height - r))
notch.curve(to: NSPoint(x: size.width, y: size.height),
controlPoint1: NSPoint(x: size.width - r, y: size.height - gap),
controlPoint2: NSPoint(x: size.width - r + gap, y: size.height))
notch.close()
NSColor.black.setFill() //change to black to see the notch
notch.fill()
}```
```language
class NotchPanel: NSPanel, CAAnimationDelegate {
private (set) var notchView = NotchView()
var notchClickPublisher: AnyPublisher<NSPoint, Never> {
return notchView.mouseDownPublisher
}
init(_ center: NSPoint,_ size: NSSize) {
let notchFrame = NSRect(x: center.x - 0.5 * size.width,
y: center.y - size.height,
width: size.width,
height: size.height)
super.init(contentRect: notchFrame,
styleMask: [ .nonactivatingPanel,.nonactivatingPanel, .hudWindow],
backing: .buffered,
defer: true)
self.level = .popUpMenu
self.collectionBehavior = [.canJoinAllSpaces, .fullScreenAuxiliary]
self.isOpaque = true
self.isMovable = false //Disable notch to be moveable
self.hasShadow = false //we do custom shadow later
self.backgroundColor = NSColor.systemPink //notch background
setNotchView()
}
private func setNotchView() {
self.contentView?.addSubview(notchView)
notchView.translatesAutoresizingMaskIntoConstraints = false
notchView.leftAnchor
.constraint(equalTo: self.contentView!.leftAnchor)
.isActive = true
notchView.topAnchor
.constraint(equalTo: self.contentView!.topAnchor)
.isActive = true
notchView.rightAnchor
.constraint(equalTo: self.contentView!.rightAnchor)
.isActive = true
notchView.bottomAnchor
.constraint(equalTo: self.contentView!.bottomAnchor)
.isActive = true
}```